Avatar billede souledout Nybegynder
10. oktober 2002 - 01:02 Der er 8 kommentarer og
1 løsning

Ulovlige bogstavkombinationer

Hej!

Jeg har en registreringsside til en chat hvor man skal indtaste et ønsket brugernavn og et ønsket kodeord. Da der er nogle administratorer på chatten, vil jeg gerne kunne fohindre at almindelige brugere kan kalde sig noget hvor f.eks. admin indgår. Derfor søger jeg et script som gør følgende:

Hvis en bruger forsøger at oprette et navn hvor f. eks. "admin" indgår skal han/hun få dialogboks hvor vedkommende får at vide at navnet er "ulovligt" og at de skal prøve et andet.

Linien for brugernavn-boksen ser således ud:

<input type="text" name="username" value="" size="32">

Hvad skal der indsættes for at dette bliver muligt? Der kan også bruges ASP (og MySQL) til formålet... det er til en udvidelse af Theill's ConquerChat. Hele registrerings ASP-filen kan hentes her:

http://www.ekbatana.dk/andreas/eksperten/register.zip

Jeg ved ikke om spørgsmålet er stillet rigtigt, men ellers så må I lige hjælpe mig lidt på vej :)


Mvh
SouledOut
Avatar billede souledout Nybegynder
10. oktober 2002 - 01:13 #1
RETTELSE: Login-scriptet benytter en Acces-database og altså ikke MySQL. I er dog stadig velkomne til at benytte MySQL - så opretter jeg bare en specielt til formålet :)
Avatar billede Slettet bruger
10. oktober 2002 - 16:01 #2
Det kan gøres såre simpelt med java script:

function valider(frm) {
if (frm.username.value.toLowerCase().indexOf("admin") != -1) {
alert("Det er ulovligt at bruge ordet \"admin\" i dit brugernavn!");
frm.username.select();
frm.username.focus();
return false;
}
return true;
}

Dette skal lige indsættes i form-tagget:

<form ... onSubmit="return valider(this);">
Avatar billede Slettet bruger
10. oktober 2002 - 16:01 #3
Læg mærke til, at scriptet også tager højde for store og små bogstaver.
Avatar billede souledout Nybegynder
10. oktober 2002 - 16:37 #4
1. "Fanger" den det også hvis man f.eks. skriver "chatadmin1" eller er det kun hvis man skriver "admin"?

2. Hvor i koden skal jeg lægge hovedscriptet? Skal det bare ligge et sted mellem <form> og </form>?

Jeg kan desværre ikke teste det, da min webhost er nede lige nu...
Avatar billede Slettet bruger
10. oktober 2002 - 16:59 #5
1)
Den fanger det ligegyldigt hvor brugeren skriver det.

2)

Scriptet skal lægges (med <script> og </script> udenom) i head.
Avatar billede souledout Nybegynder
10. oktober 2002 - 18:39 #6
Ok... jeg skal lige have mulighed for at prøve det (når min webhost kommer op at køre), og så får du point...
Avatar billede souledout Nybegynder
13. oktober 2002 - 14:34 #7
Jeg vil gerne have det til at virke med flere forskellige ord, så jeg har prøvet følgende:

function valider(frm) {
           
            if (frm.username.value.toLowerCase().indexOf("admin") != -1) {
            alert("Det er ulovligt at bruge ordet 'admin' i dit brugernavn!");
            frm.username.select();
            frm.username.focus();
            return false;
            }
            elseif (frm.username.value.toLowerCase().indexOf ("webmaster") != -1) {
            alert("Det er ulovligt at bruge ordet 'webmaster' i dit brugernavn!");
            frm.username.select();
            frm.username.focus();
            return false;
            }
            return true;
            }

...men det virker ikke. Hvad skal jeg gøre for at få det til at virke?? Jeg vil gerne have det stillet op denne måde, da jeg vil have mulighed for at skrive forskellige fejl-meddelelser for hvert ord.


/SouledOut
Avatar billede Slettet bruger
21. oktober 2002 - 08:48 #8
function valider(frm) {
           
            if (frm.username.value.toLowerCase().indexOf("admin") != -1) {
            alert("Det er ulovligt at bruge ordet 'admin' i dit brugernavn!");
            frm.username.select();
            frm.username.focus();
            return false;
            }
            if (frm.username.value.toLowerCase().indexOf("webmaster") != -1) {
            alert("Det er ulovligt at bruge ordet 'webmaster' i dit brugernavn!");
            frm.username.select();
            frm.username.focus();
            return false;
            }
            return true;
            }

else if er ligegyldig i denne sammenhæng, da der jo vil være returneret false (og funktionen dermed vil være slut), hvis den første betingelse er sand.
Der må ikke være mellemrum mellem indexOf og den efterfølgende parentes!
Avatar billede souledout Nybegynder
22. oktober 2002 - 01:05 #9
Jeg takker mange gange :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester