OkaminoChizu
Mitglied
Hallo,
ich beschäftige mich gerade mit dem PHP_Tutorial von http://www.php-kurs.com/. Aber jetzt bon ich bei der Übung Newsletteranmeldung http://www.php-kurs.com/uebung-newsletteranmeldung.htm. Bis zu Erstellung des Formulars und Versenden der Email hat alles geklappt, aber ab der Kontrolle funktioniert es nicht mehr. Das Lösungskript ist zwar vorhanden, ist aber anders, als meins, und ich finde den Fehler einfach nicht.
Newsletteranmeldung:
Bis hier hat wie gesagt alles geklappt, aber jetzt kommt die Freischaltung des Newsletters:
Ich würde mich sehr freuen, wenn mir jemand helfen könnte, es geht einfach nur um Übungszwecke.
LG,
Okami
ich beschäftige mich gerade mit dem PHP_Tutorial von http://www.php-kurs.com/. Aber jetzt bon ich bei der Übung Newsletteranmeldung http://www.php-kurs.com/uebung-newsletteranmeldung.htm. Bis zu Erstellung des Formulars und Versenden der Email hat alles geklappt, aber ab der Kontrolle funktioniert es nicht mehr. Das Lösungskript ist zwar vorhanden, ist aber anders, als meins, und ich finde den Fehler einfach nicht.
Newsletteranmeldung:
PHP:
<html>
<head> <title> Newsletteranmeldung </title></head>
<body>
<?php
//Formular
$kontrolle = date("syHdim");
if(empty($_GET['email']) == TRUE or empty($_GET['agb']) == TRUE) {
echo '<form action ="Newsletteranmeldung.php" method="get">
Ihre E-Mail-Adresse:<br>
<input type="text" name="email" value="'.$_GET['email'].'"><p>
Anrede: (optional)<br>
<input type="radio" name="anrede" value="Frau">Frau
<input type="radio" name="anrede" value="Herr">Herr<p>
Vorname: (optional)<br>
<input type="text" name="vorname" value="'.$_GET['vorname'].'"><p>
Nachname: (optional)<br>
<input type="text" name="nachname" value="'.$_GET['nachname'].'"><p>
<input type="checkbox" name="agb" value="agb">hiermit bin ich einverstanden, dass meine Daten elektronisch gespeichert<br> werden, damit mir die gewünschte Newsletter zugestellt werden kann ... <br>(gesetzliches Blahblah zum Datenschutz und Speicherung der Daten ....)<p>
<input type="hidden" name="kontrolle" value="'.$kontrolle.'">
<input type="submit" value="speichern">
</form>';}
//in Formular speichern
else {
$handle=fopen("newsletter.txt", "a+");
fwrite($handle, $_GET['email']);
fwrite($handle, " | ");
fwrite($handle, $_GET['anrede']);
fwrite($handle, " | ");
fwrite($handle, $_GET['vorname']);
fwrite($handle, " | ");
fwrite($handle, $_GET['nachname']);
fwrite($handle, " | ");
fwrite($handle, $_GET['kontrolle']);
fwrite($handle, "\r\n");
fclose($handle);
}
//Erstellung des E-mail textes, muss noch zur E-Mail werden (Server)
$betreff = "Newsletter-Anmeldung"; //Z 35
$absender = "resa.schiessl@web.de";
$antwortan = "resa.schiessl@web.de";
$anrede = $_GET['anrede'];
$vorname = $_GET['vorname'];
$nachname = $_GET['nachname'];//40
$email = $_GET['email'];
if ($_GET['anrede'] == "Frau") {
$text = "Sehr geehrte $anrede";
}
else {
$text = "Sehr geehrter $anrede";
}
$text .= " $vorname $nachname,<p>Sie haben den Newsletter von ... bestellt. Um sicherzustellen, dass die E-Mail-Adresse <br>funktioniert und Sie den Newsletter erhalten möchten, klicken Sie bitte <br>auf folgenden Link:<p>http://localhost/newsletter-freischalten.php?mail=";
$text .= $email;
$text .= '&id=';
$text .= $kontrolle;
$text .="<p>Sollten Sie den Newsletter nicht angefordert haben, entschuldigen Sie bitte <br>diese E-Mail. Dann hat sich wahrscheinlich jemand vertippt. Ignorieren Sie <br>einfach die Mail und löschen Sie diese.";
echo $text;
?>
</body>
</html>
Bis hier hat wie gesagt alles geklappt, aber jetzt kommt die Freischaltung des Newsletters:
PHP:
<?php
echo "<pre>";
print_r ( $_GET );
$handle=fopen('newsletter.txt', 'r');
while($inhalt=fgets($handle, 4096)) {
$inhalt=trim($inhalt);
list($email, $anrede, $vorname, $nachname, $kontrolle) = explode("|", $inhalt);
echo $email;
echo $anrede;
echo $vorname;
echo $nachname;
echo $kontrolle;
echo "<br>";
if($email == $_GET['mail'] AND $kontrolle == $_GET['id'])
{
echo "Sie wurden freigeschaltet!";
speichern($email, $anrede, $vorname, $nachname, $kontrolle);
}
}
fclose($handle);
function speichern ($email, $anrede, $vorname, $nachname, $kontrolle)
{
$handle = fopen ( "nl-bestaetigt.txt", "a" );
fwrite ( $handle, $email );
fwrite ( $handle, "|" );
fwrite ( $handle, $anrede );
fwrite ( $handle, "|" );
fwrite ( $handle, $vorname );
fwrite ( $handle, "|" );
fwrite ( $handle, $nachname );
fwrite ( $handle, "|" );
fwrite ( $handle, $kontrolle );
fwrite ( $handle, "\r\n" );
fclose ( $handle );
}
?>
Ich würde mich sehr freuen, wenn mir jemand helfen könnte, es geht einfach nur um Übungszwecke.
LG,
Okami