Wo liegt das Problem?

Harrier

Erfahrenes Mitglied
Also ich werd hier gleich verrückt! Ich sitze jetzt bestimmt ne dreiviertel Stunde überdiesem Script. Wahrscheinlich wäre es einfacher gewesen einfach einen neuen zu schreiben aber ich will wissen was falsch ist!

Also das ganze soll n Log-In werden! Name und PW bekommt man von nem Formular. Wenn der User also hierher kommt soll die Datei users/all.dat geöffnet werden, in der alle drin stehen. Wenn der User-Name gefunden wurde soll eine andere Datei geöffnet werden (Jeder User bekommt eine wo alles drin steht (z.B. das PW) - aber so weit komm ich gar nicht! Also: Er öffnet die Datei und kann mir die einzelnen Einträge auch herauslesen. Aber das mit dem Vergleich geht net! Ich habe z.B. als Name "himmel". Dann könnte ich ihn sogar direkt im code "himmel" mit $user[$i] vergleichen lassen und er täte ihn nicht finden.

WO LIEGT DAS PROBLEM?

PHP:
<?php
$users=file("users/all.dat","r");
$usersno=count($users);
for($i=0;$i<=$usersno;$i++) {
if($name==$users[$i]) { 
 $usda=file("users/$name.dat","r");
 if($usda[4]==$pw) {
 $online=fopen("online.dat","a");
fputs($online,$REMOTE_ADDR); 
header("Location:http://www.woandershin.de/"); }

}
}echo "nicht drinne";  ?>
 
Zum einen.... ist register_globals bei dir an? ....wenn nicht, wäre statt $name und $pw .....$_REQUEST['name'] bzw. $_REQUEST['pw'] angebrachter (und sonst auch :-) )

Aber ich glaube, das Hauptproblem dürfte sein, dass du $user[$i] trim()'n musst...da sind ja, da es komplette Zeilen sind, auch Zeilenumbrüche drinnen.... im Benutzernamen aber nicht, daher stimmt es nie überein.

P.S. ich glaub, file() hat nur einen Parameter, das "r "kannst du getrost weglassen :)
 
okay! danke für die antowrten! ich weis zwar noch nicht ob sie helfen aber hm..
also an global liegts net weil ich ja auch die usernames zum test schon mal in den code geschrieben hab.

das mit dem trimmen werd ich wohl mal testen aber ich hab auch schon "username\n" mit $user[$i] verglichen

und das "r" bei file hab ich aus nem tutorial ;)
 
Zurück