Falsches Ergebnis kommt zurück

Fragen zu allen Themen rund ums Programmieren außerhalb von phpBB können hier gestellt werden - auch zu anderen Programmiersprachen oder Software wie Webservern und Editoren.
Antworten
Maniac5000
Mitglied
Beiträge: 273
Registriert: 31.05.2005 08:43
Wohnort: Berlin
Kontaktdaten:

Falsches Ergebnis kommt zurück

Beitrag 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

Code: Alles auswählen

$nick = 'Tobi';
und

Code: Alles auswählen

$nickzeichen='abcdefghijklmnopqrstuvwxyzäüöABCDEFGHIJKLMNOPQRSTUVWXYZÄÖÜß0123456789';
Als Ergebnis wird

Code: Alles auswählen

$b=false; 
zurückgegeben. Aber eigentlich müsste

Code: Alles auswählen

$b=true;
zurückgegeben werden. Kann mir eiern helfen?
You get never a second chance to make a first impression.
Sebastian R.
Mitglied
Beiträge: 328
Registriert: 18.03.2006 23:21
Kontaktdaten:

Beitrag von Sebastian R. »

Da kann doch nur False rauskomme. Da wird doch jedes Zeichen der Kette mit dem Username verglichen, oder?
Modeinbau, Banner- und Grafik-Design - gegen einen kleinen Aufpreis! Mail: sebastian@rayloaded.de oder per PN

Rayloaded.de - Your programmers heaven.
Maniac5000
Mitglied
Beiträge: 273
Registriert: 31.05.2005 08:43
Wohnort: Berlin
Kontaktdaten:

Beitrag von Maniac5000 »

Ja, aber meines Wissen wird die bedingung nur erfüllt, wenn

Code: Alles auswählen

(string)$zz
nicht in

Code: Alles auswählen

$nickzeichen
vorkommt.
You get never a second chance to make a first impression.
Sebastian R.
Mitglied
Beiträge: 328
Registriert: 18.03.2006 23:21
Kontaktdaten:

Beitrag 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.
Modeinbau, Banner- und Grafik-Design - gegen einen kleinen Aufpreis! Mail: sebastian@rayloaded.de oder per PN

Rayloaded.de - Your programmers heaven.
Maniac5000
Mitglied
Beiträge: 273
Registriert: 31.05.2005 08:43
Wohnort: Berlin
Kontaktdaten:

Beitrag 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.
You get never a second chance to make a first impression.
Benutzeravatar
Pyramide
Ehrenadmin
Beiträge: 12734
Registriert: 19.04.2001 02:00
Wohnort: Meschede

Beitrag von Pyramide »

Code: Alles auswählen

function checknick($nick, $nickzeichen) {
    return preg_match('#^['.$nickzeichen.']+$#', $nick);
}

checknick('Tobi', 'A-Za-z0-9äöüÄÖÜ');
KB:knigge
Antworten

Zurück zu „Coding & Technik“