Seite 1 von 1
Falsches Ergebnis kommt zurück
Verfasst: 03.05.2006 17:22
von Maniac5000
Code: Alles auswählen
function checknick($nick) {
global $STYLESHEET, $REMOTE_FILES_DIR, $DATADIR, $nickzeichen;
$b=true;
$len=strlen($nick);
for($i=0;$i<$len;$i++) {
$zz=substr($nick,$i,1);
if(strstr($nickzeichen,(string)$zz)==false) {
$b=false;
}
}
}
Das ist meine Funktion. Jetzt wird die ausgeführt mit
und
Code: Alles auswählen
$nickzeichen='abcdefghijklmnopqrstuvwxyzäüöABCDEFGHIJKLMNOPQRSTUVWXYZÄÖÜß0123456789';
Als Ergebnis wird
zurückgegeben. Aber eigentlich müsste
zurückgegeben werden. Kann mir eiern helfen?
Verfasst: 03.05.2006 17:31
von Sebastian R.
Da kann doch nur False rauskomme. Da wird doch jedes Zeichen der Kette mit dem Username verglichen, oder?
Verfasst: 03.05.2006 17:32
von Maniac5000
Ja, aber meines Wissen wird die bedingung nur erfüllt, wenn
nicht in
vorkommt.
Verfasst: 03.05.2006 17:35
von Sebastian R.
strstr vergleicht doch den ganzen String. Sprich ob das $zz in dem String $nickzeichen vorkommt. Da "T" da aber vorkommt ist $b = false.
Verfasst: 03.05.2006 17:42
von Maniac5000
Also, daran lag es nicht. Ich hatte Recht, aber ich habe vergessen, dass ich $b natürlich per return zurükgeben muss. Jetzt funktioniert das Ganze.
Verfasst: 03.05.2006 22:07
von Pyramide
Code: Alles auswählen
function checknick($nick, $nickzeichen) {
return preg_match('#^['.$nickzeichen.']+$#', $nick);
}
checknick('Tobi', 'A-Za-z0-9äöüÄÖÜ');