Julian von Mendel: Fehler beim auslesen von $usertype aus Datei

Beitrag lesen

Hi nokill,


$datei = "userdatabase.txt";
     $zeile=file($datei,1024);

Den zweiten Parameter verstehe ich nicht, zumindest darf, wenn ich http://www.php.net/file richtig verstanden habe, da nur nichts oder 1 stehen.

for ($i=0, $richtig_var=0; $i<=count($zeile); $i++)

Du musst < und nicht <= schreiben, da count die Größe des Arrays zurückgibt, aber die Werte im Array bekanntlich bei 0 anfangen.

{
               $gelesener_name=explode("||",$zeile[$i]);
               $usertype = $gelesener_name[2];
               if ($gelesener_name[0]==$name)
                    {
                         if (trim($gelesener_name[1])==$pw && ($usertype==user))

Das user würde ich mit Gänsefüßchen umgeben, ist schöner.

{
                                   $userlog = "true";
                              }
                         else if ((trim($gelesener_name[1])==$pw) && ($usertype==admin))
                              {
                                   adminlog = "true";

Da fehlt ein $

}
                         else
                              {
                                   $userlog = "false";
                                   $adminlog  = "false";
                              }
                     }
          }

Du machst folgenden großen Fehler:
Dadurch das du die Datei in einer Schleife durchgehst, überschreibst du die alten Variablen bei jedem Durchgang. Und nachdem du zusätzlich < und nicht <= geschrieben hast, steht logischerweise in der letzen Zeile garnichts drinnen, und somit kommst du zu deinem falschem Ergebnis. Wenn du <= durch < ersetzt, bekommst du die Werte aus der letzen Zeile zurück, was du aber vermutlich nicht erreichen wolltest. Du solltest $userlog und $adminlog bevor die Schleife beginnt auf "false" setzen, und den else-Teil dann weglassen, somit wird nix da shconmal nixmehr überschrieben. Und dann erstelltst du eine weitere Variable, in die du das Array $gelsener_name überträgst, wenn Username und Passwort stimmen. Ich hoffe, das war jetzt ienigermaßen verständlich, bei meinem wirrem Geschreibe, wenn nicht, frag nochmal, dann tipp ich dir schnell ein Beispiel...

Schöne Grüße
Julian