Po przesłaniu formularza wykonuję jakiś kod, np przywrócenie hasła.
Lecz gdy nacisnę F5 strona się odświeża i w przeglądarce dalej jest POST, co powoduje, że można od razu wykonać tego posta.
Robię to headerami ale nie skutkuje, uzywam smarty:
<?php require_once('/includes/main_inc.php'); require_once('/includes/functions.php'); // css include $smarty->assign('css_inc', $css_inc); // // site meta data switch($_GET['action']){ case 'login'<span style="color: #007700"<span style="color: #007700": $site_title='Logowanie'; $site_keywords=', zaloguj się, logowanie'; $site_description='Zaloguj się do portalu podróżniczym atotam.pl. Zyskaj więcej funkcji jako zalogowany użytkownik.'; break; case 'recover'<span style="color: #007700"<span style="color: #007700": $site_title='Odzyskaj zapomniane hasło'; $site_keywords=', odzyskaj hasło, zapomniane hasło, zapomniałeś hasła'; $site_description='Jeśli nie pamiętasz swojego hasła, możemy ci przysłać nowe. Wystarczy wpisać w odpowiednie pola adres pocztowy podany podczas Twojej rejestracji na portalu i datę swoich urodzin'; break; } $smarty->assign('site_title', $site_title); $smarty->assign('site_keywords', $site_keywords); $smarty->assign('site_description', $site_description); // include('/header.php'); include('/footer.php'); //logout if($_GET['action']=="logout"){ if(session_check()==1){ session_finish(); } else{ } } // recover elseif($_GET['action']=="recover"){ must_logout(); // recover post if(!(preg_match('/^[a-z0-9._-]+@[a-z0-9.-]+.[a-z]{2,6}$/i', sqlesc($_POST['email'])))){ // zły email $error='Wpisz poprawny adres E-mail.'; } else{ // email OK - sprawdzenie w bazie $birth=sqlesc($_POST['b_year']).'-'.sqlesc($_POST['b_month']).'-'.sqlesc($_POST['b_day']); $sql=$db->query("SELECT `id`,`email` FROM `users` WHERE `email`='".sqlesc($_POST['email'])."' AND `birth`='".$birth."'") or die($db->error); if($sql->num_rows==1){ $host=$_SERVER['REMOTE_HOST']; $ip=IP_check(); $pass=gen_rec_pass(); $hash_pass=hashpass($pass); $arr=$sql->fetch_assoc(); $to=$arr['email']; $title="Odzyskanie hasła na portalu atotam.pl"; $head = "MIME-Versio: 1.0\n"; $head .= "Content-ty: text/plain; charset=utf-8\n"; $head .= "Fro: Portal geograficzny atotam.pl <info@atotam.pl>\n"; $content='Witaj. Odpowiadamy na Twoją prośbę o odzyskanie hasła do konta na portalu Atotam.pl. Została ona wysłana z komputera o : '.$ip.' ('.$host.'). Twoje nowe hasło to: '.$pass.' Po zalogowaniu się na swoje konto za jego pomocą możesz je zmienić według swojego uznania. Pozdrawiamy, Administracja Atotam.pl'; //$db->query("UPDATE `users` SET `pass`='".sqlesc($hash_pass)."' WHERE `id`='".sqlesc($arr['id'])."'") or die($db->error); $_SESSION['rec_info']=1; } else{ $_SESSION['rec_info']=2; } } elseif($sql->numrows!=1){ $error='Wpisane dane są niepoprawne.'; } } $smarty->assign('error', $error); } // recover post -END } $smarty->display('login.tpl'); ?>