Cześć, zmodyfikowałem troszeczkę kod php z odcinka 3. Zrobiłem tak, aby formularz został wysłany na mojego emaila. Mam jednak problem z zapamiętywaniem danych z formularza. Link do strony. Czy ktoś wie, dlaczego tak się dzieje?
<?php
session_start();
if (isset($_POST['email']))
{
//Udana walidacja? Załóżmy, że tak!
$wszystko_OK=true;
//Sprawdź poprawność nickname'a
$nick = $_POST['nick'];
//Sprawdzenie długości nicka
if ((strlen($nick)<3) || (strlen($nick)>20))
{
$wszystko_OK=false;
$_SESSION['e_nick']="Nick musi posiadać od 3 do 20 znaków!";
}
if (ctype_alnum($nick)==false)
{
$wszystko_OK=false;
$_SESSION['e_nick']="Nick może składać się tylko z liter i cyfr (bez polskich znaków)";
}
// Sprawdź poprawność adresu email
$email = $_POST['email'];
$emailB = filter_var($email, FILTER_SANITIZE_EMAIL);
if ((filter_var($emailB, FILTER_VALIDATE_EMAIL)==false) || ($emailB!=$email))
{
$wszystko_OK=false;
$_SESSION['e_email']="Podaj poprawny adres e-mail!";
}
else
{
//Zapamiętaj wprowadzone dane
$_SESSION['fr_nick'] = $nick;
$_SESSION['fr_email'] = $email;
// Podajesz tytuł jaki ma mieć ta wiadomość email
$tytul = "Formularz";
$dokogo ="admin@domena.pl";
// Przygotowujesz treść wiadomości
$wiadomosc = "";
$wiadomosc .= "Imie: " . $nick . "\n";
$wiadomosc .= "E-mail kontaktowy: " . $email . "\n";
// Wysyłamy wiadomość
$sukces = mail($dokogo, $tytul, $wiadomosc, "Od: <$odkogo>");
// Przekierowywujemy na potwierdzenie
if ($sukces){
header('Location: potwierdzenie.php');
}
else{
header('Location: error.html');;
}
}
}
?>
<!DOCTYPE HTML>
<html lang="pl">
<head>
<meta charset="utf-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
<title>Osadnicy - załóż darmowe konto!</title>
<style>
.error
{
color:red;
margin-top: 10px;
margin-bottom: 10px;
}
</style>
</head>
<body>
<form method="post">
Nickname: <br /> <input type="text" value="<?php
if (isset($_SESSION['fr_nick']))
{
echo $_SESSION['fr_nick'];
unset($_SESSION['fr_nick']);
}
?>" name="nick" /><br />
<?php
if (isset($_SESSION['e_nick']))
{
echo '<div class="error">'.$_SESSION['e_nick'].'</div>';
unset($_SESSION['e_nick']);
}
?>
E-mail: <br /> <input type="text" value="<?php
if (isset($_SESSION['fr_email']))
{
echo $_SESSION['fr_email'];
unset($_SESSION['fr_email']);
}
?>" name="email" /><br />
<?php
if (isset($_SESSION['e_email']))
{
echo '<div class="error">'.$_SESSION['e_email'].'</div>';
unset($_SESSION['e_email']);
}
?>
<br />
<input type="submit" value="Zarejestruj się" />
</form>
</body>
</html>
Z góry dziękuje za pomoc.