#1 26. März 2009 PHP Code macht nicht was er Soll Hallo zusammen, ein Kollege von mir hat ein Script geschrieben, was ich ausführen muss um bei mir in der Firma Benutzer in das Forum zu Importieren. Soweit ganz gut, das Funktioniert auch einwandfrei nur in dem Script haben wir eine Pasage die Benutzernamen überprüft und wenn der Benutzername in der Passage vorhanden ist, werden diese Benutzer nicht importiert. So jedenfalls der Gedanke... Sporadisch Importiert er auch die Benutzer nicht, aber leider nicht alle nun meine Frage, jemand eine Idee warum er manche Leute importiert und manche nicht? Hier der Code: PHP: if ( $users [ strtolower ( $entry [ "samaccountname" ][ 0 ])][ 'USERNAME_CLEAN' ] != strtolower ( $entry [ "samaccountname" ][ 0 ]) && $entry [ "samaccountname" ][ 0 ] != "pvs" && $entry [ "samaccountname" ][ 0 ] != "nba2" && $entry [ "samaccountname" ][ 0 ] != "skr2" && $entry [ "samaccountname" ][ 0 ] != "skr3" && $entry [ "samaccountname" ][ 0 ] != "dix" && $entry [ "samaccountname" ][ 0 ] != "sku2" && $entry [ "samaccountname" ][ 0 ] != "sku3" && $entry [ "samaccountname" ][ 0 ] != "klw2" && strlen ( $entry [ "samaccountname" ][ 0 ]) > 0 && ( strlen ( $entry [ "samaccountname" ][ 0 ]) <= 5 or strpos ( $entry [ "samaccountname" ][ 0 ], "." ) != null ) && strlen ( $entry [ "mail" ][ 0 ]) > 0 ) { skr3 sku2 klw2 die Drei fügt er hinzu auch wenn er es eigentlich nicht soll... BW is klar! So Long + Multi-Zitat Zitieren
#2 26. März 2009 AW: PHP Code macht nicht was er Soll ich würde strings niemals direkt über == oder != etc. vergleichen, du kannst dir nie sichergehen dass das in jeder sprache immer das korrekte ergebnis liefert. PHP z.b. bietet folgende funktion: PHP: strncmp - Manual diese sollte dein problem lösen falls es wirklich an fehlschlagendem Stringvergleich liegt + Multi-Zitat Zitieren
#3 27. März 2009 AW: PHP Code macht nicht was er Soll nja in php sollte es mit dem direkten vergleich funktionieren.. aber wen du vorher ein formular absendest.. JS,PHP code aus dem string mit strip_tags() entfernen.. dann wo bekommst du: $entry["samaccountname"][0] her (ich würde den wert mal in eine extra variable speicher.. so verliert man schnell den überblick udn musst immer wieder diesen langen namen eingeben + Multi-Zitat Zitieren
#4 28. März 2009 AW: PHP Code macht nicht was er Soll PHP: <? php $clean = $users [ strtolower ( $entry [ 'samaccountname' ][ 0 ])][ 'USERNAME_CLEAN' ]; $invalid = array( 'pvs' , 'nba2' , 'skr2' , 'skr3' , 'dix' , 'sku2' , 'sku3' , 'klw2' ); $ulength = strlen ( $entry [ 'samaccountname' ][ 0 ]); if( $clean != strtolower ( $entry [ 'samaccountname' ][ 0 ]) && ! in_array ( $entry [ 'samaccountname' ][ 0 ], $invalid ) && $ulength > 0 && ( $ulength <= 5 || strpos ( $entry [ 'samaccountname' ][ 0 ], '.' ) !== false ) && strlen ( $entry [ 'mail' ][ 0 ]) > 0 ) { //pass } else { //fail } ?> testen + Multi-Zitat Zitieren