Problem bei Datei nach gleichen E-Mail Adressen durchsuchen

Schnitzeljaeger

Grünschnabel
Hallo,

Ich habe vor ein kleines Newsletterscript zu programmieren.
Ich wollte verhindern das User ihre E-Mail Adresse zweimal eintragen können. Daher hab ich schonmal folgenden Code entwickelt. Funktioniert leider nur nicht er sagt selbst wenn in der Datei die E-Mail Adresse schon vorhanden ist das sie noch nicht eingetragen wäre.

Vielleicht könnte ihr mir ja weiterhelfen und meinen Code berichtigen:

PHP:
<?php
/////////////////////////////////////////////////////////////
// Newsletter - E-Mail Adresse überprüfen ob sie schon in der Datei ist
////////////////////////////////////////////////////////////

// Abfragen ob Felder leer sind wenn ja gibt er einen Fehler aus
if ($email == ""){ 
// Das unten ist die Error Meldung wenn man nicht alle Felder aufüllt
print "<br><br><br><b>Fehler: Du hast nicht alle Felder ausgefüllt!</b><br><br>
    <a href=\"javascript:history.back();\">Zurück</a>";
}
else{

//Überprüfen ob E-Mail Adresse schonmal in der File ist
//Laden
$db = "e_m_a_i_l_s.data";
$db_zeilen1 = file($db);

//Kommas mit leerzeichen ersetzten
$db_zeilen2 = str_replace(",","", $db_zeilen1);

// zeilen zählen
$db_count = count($db_zeilen2); 

for($i = ($db_count-1); $i >= 0; $i--){ 

if($db_zeilen2[$i] == $email){
$emailschondrin = "yes";
}

}

if($emailschondrin == "yes"){
echo("<center>E-Mail is schon drinn junge!</center>");
}
else
{
echo("<center>E-Mail noch net drinne</center>");
}

}
?>
 
PHP:
<?php
/////////////////////////////////////////////////////////////
// Newsletter - E-Mail Adresse überprüfen ob sie schon in der Datei ist
////////////////////////////////////////////////////////////

// Abfragen ob Felder leer sind wenn ja gibt er einen Fehler aus
if ($email == ""){ 
// Das unten ist die Error Meldung wenn man nicht alle Felder aufüllt
print "<br><br><br><b>Fehler: Du hast nicht alle Felder ausgefüllt!</b><br><br>
    <a href=\"javascript:history.back();\">Zurück</a>";
}
else{

//Überprüfen ob E-Mail Adresse schonmal in der File ist
//Laden
$db = "e_m_a_i_l_s.data";
$db_zeilen1 = file($db);

//Kommas mit leerzeichen ersetzten
$db_zeilen2 = str_replace(",","", $db_zeilen1);

for($i=0;$i<count($db_zeilen2);$i++){ 

if($db_zeilen2[$i] == $email){
$emailschondrin = "yes";
}

}

if($emailschondrin == "yes"){
echo("<center>E-Mail is schon drinn junge!</center>");
}
else
{
echo("<center>E-Mail noch net drinne</center>");
}

}
?>

Ich schätze, dass es an deiner FOR-Schleife liegt.
$i = $db_count-1;$i>=0;$i--
Wenn $i = 0 dann wird immer noch -1 gemacht.
Das nehme ich an ist der Fehler.
Habe die Schleife korrigiert und in einer einfacheren und logischeren Zählart. Warum fängst du unbedingt von hinten an?

edit:
PS. Zwischen java und script im Link ist KEIN Leerzeichen.
Wird durh das Forum falsch dargestellt.
 
Lass Dir mal
PHP:
$db_zeilen2[$i]
in der Schleife auslesen.
Also was bei mir da so ausgespuckt wird, ist abenteuerlich...

Da kanns niemals eine Übereinstimmung geben!

MfG
cyber
 
Zurück