Hallo zusammen,
habe einen seltsamen Fall. Habe hier auch nur die umgekehrte Variante meines Problems finden können. Hoffe hier hat jemand eine zündende Idee.
Und zwar: Habe einen kleinen Newsletter in eine Seite eingebunden. Der Bereich zum Eintragen, sieht wie folgt aus:
Gibt man nun eine Adresse ein und bestätigt man mit Enter, läuft das auch alles sauber durch. Es wird erkannt ob sie valide, bereits vergeben, oder nicht registriert ist und wird auch ggfs. wie gewünscht in die .txt geschrieben. Gibt man eine Adresse ein uns bestätigt mit dem Submit-Button, erhält man immer den alert: Sorry. This is an invalid e-mail address. (siehe Code).
Kennt jemand das Phänomen? Was macht der Submit-Button denn da heimlich, dass die Adresse die Verifizierung nicht besteht? Hier noch der Code der checkmail.php
Besten Dank und Ahoi
habe einen seltsamen Fall. Habe hier auch nur die umgekehrte Variante meines Problems finden können. Hoffe hier hat jemand eine zündende Idee.
Und zwar: Habe einen kleinen Newsletter in eine Seite eingebunden. Der Bereich zum Eintragen, sieht wie folgt aus:
PHP-Code:
<form name="eintragen" method="post" action="<?php echo $_SERVER["PHP_SELF"];?>">
<input type="text" name="email" size="25" class="mailcontainer" value="Newsletter" onfocus="this.value=''" onblur="this.value='Newsletter'" /> <input type="submit" value="subscribe" class="submit-button" />
</form>
<?php
include ("content/checkmail.php");
if (isset($_POST["email"]))
{
if (!check_email($_POST["email"]))
{
echo "<div id='alert'><pre class='alert'>Sorry. This is an invalid e-mail address.</pre></div>";
}
else
{
if (!file_exists("content/adressen.txt"))
{
$handle = fopen("content/adressen.txt", "a");
fclose($handle);
}
$adressen = file_get_contents("content/adressen.txt");
$adr_array=explode(";", $adressen);
if (!in_array($_POST["email"],$adr_array))
{
$handle = fopen("content/adressen.txt","a");
array_push($adr_array, trim($_POST["email"]));
$adr_neu = implode(";",$adr_array);
fclose($handle);
unlink("content/adressen.txt");
$handle = fopen("content/adressen.txt", "a");
fwrite($handle, $adr_neu);
fclose($handle);
echo "<div id='alert'><pre class='alert'>Your registration has been successful.</pre></div>";
}
else {
echo "<div id='alert'><pre class='alert'>Your e-mail address already exists.</pre></div>";
}
}
}
?>
Kennt jemand das Phänomen? Was macht der Submit-Button denn da heimlich, dass die Adresse die Verifizierung nicht besteht? Hier noch der Code der checkmail.php
PHP-Code:
<?php
function check_email($email)
{
$nonascii = "\x80-\xff";
$nqtext = "[^\\\\$nonascii\015\012\"]";
$qchar = "\\\\[^$nonascii]";
$protocol = '(?:mailto:)';
$normuser = '[a-zA-Z0-9][a-zA-Z0-9_.-]*';
$quotedstring = "\"(?:$nqtext|$qchar)+\"";
$user_part = "(?:$normuser|$quotedstring)";
$dom_mainpart = '[a-zA-Z0-9][a-zA-Z0-9._-]*\\.';
$dom_subpart = '(?:[a-zA-Z0-9][a-zA-Z0-9._-]*\\.)*';
$dom_tldpart = '[a-zA-Z]{2,5}';
$domain_part = "$dom_subpart$dom_mainpart$dom_tldpart";
$regex = "$protocol?$user_part\@$domain_part";
return preg_match("/^$regex$/",$email);
}
?>
Kommentar