Servus an alle,
ich wollte für eine Seite ein PHP-Script schreiben, dass eine Newsletter-Anmeldung ermöglicht. Als Vorlage diente das Script vom PHP-Kurs, welches ich ein wenig veränderte.
Das Mail erstellen und in bewerber.txt schreiben klappt schon ohne Probleme. Dabei hier mal ein paar Beispiele eines Eintrags in bewerber.txt
In die Mail wird der Link folgendermaßen gestellt: ..../includes.php?mail=mail@example.com&id=7654321
//Mail(Pflicht)|Vorname|Nachname|Geschlecht|Kennnummer|
email@beispiel.de|Max|Mustermann|m|1234567|
mail@example.com||Schuster||7654321|
test@email.de|Martina||w|1234321|
So werden die Einträge reingeschrieben, ohne Kommentarzeile. Diese sollen jetzt mit dem Script eingelesen und geprüft werden:
<?php
$handle = fopen ("bewerber.txt", "r");
$email = $_GET['mail']; //Mailadresse auslesen
$id = $_GET['id']; //Kennnummer auslesen
while(!feof($handle) OR $email != $mail){ //Solange das Ende oder die gesuchte Mail nicht erreicht ist
$line = fgets($handle); //lese die aktuelle (also immer die nächste) Zeile ein
list($mail,$prename,$name,$gender,$checknum) = explode("|",$line); //und schlüssele sie auf die Variablen auf
}
fclose($handle);
if($id == $checknum){
$handle = fopen("nl-bestaetigt.txt","w");
fwrite($handle,$mail);
fwrite($handle,"|");
fwrite($handle,$prename);
fwrite($handle,"|");
fwrite($handle,$name);
fwrite($handle,"|");
fwrite($handle,$gender);
fwrite($handle,"|");
fwrite($handle,$checknum);
fwrite($handle,"|\r");
fclose($handle);
?>HTML-Anzeige bei Erfolg <?php }else{ ?>HTML-Anzeige bei Fehler <?php } ?>
Alles anzeigen
Eigentlich sollte die Schleife doch eine Zeile nach der anderen auf die Variablen aufschlüsseln, bis die richtige Mail kommt. Wenn die erste Zeile die gesuchte ist, geht das auch, aber wenn man die mittlere anwählt, geht das Programm auf Dauerschleife und gibt
Notice: Undefined offset: 4 in C:\xampp\htdocs\Website\includes\nl-activate.php on line 8
solange aus, bis sich der Browser aufhängt.
Was muss ich ändern???