Hello,
vielen Dank. Ich habe es jetzt rausgefunden. Das fertige Script lautet:
<?php
$username = "Heinz";
$userdatei = fopen ("user.txt","r+");while ($username!=$zerlegen[0])
{
$zeile = fgets($userdatei,500);
$zerlegen = explode("|", $zeile);
}
echo "<b>$zerlegen[0]</b>, <i>$zerlegen[1]</i>, <u>$zerlegen[2]</u>";
fclose($userdatei);
?>
Wie soll man nun in wenigen Zeilen klar machen, wo der Fehler steckt? Also ich fasse es mal so zusammen: Man kann nicht auf Variablen zugreifen, die noch nicht vorhanden sind. Und wenn man es doch tut, dann sollte man sich ganz besonders klar sein über die Seiteneffekte der verwendeten Programmiersrache.
Du greifst in deinem while-Statement auf zerlegen[0] zu. Die erste Zuweisung an $zerlegen findet aber erst in der Schleife statt. Ich würde (in diesem Beispiel [1]) aus der ganzen Vergleichsgeschichte eine Funktion machen, die einen Datensatz beschafft, ihen zerlegt und vergleicht und das hächstens bis feof() http://de2.php.net/manual/de/function.feof.php
[1] ich würde das gar nicht so lösen, weil es unpraktisch ist.
Mach aus den Userdaten bis ca. 1000 Usern ein mehrdimensionales Array
das Du komplett wegschreiben und wiederholen kannst.
Liebe Grüße aus http://www.braunschweig.de
Tom
Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen