Помогите сделать функцию Восстановление пароля
| |
Riolu | Дата: Вторник, 22 Мая 2012, 18:10 | Сообщение # 1 |
почетный гость
Сейчас нет на сайте
| Скрипт есть но сообщение не дождаться Quote <? include ("db2.php"); include ("config.php"); $db = db($config); include ("bd.php"); Error_Reporting(E_ALL & ~E_NOTICE); ?> <html> <head> <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=windows-1251"> <title>Восстановление пароля</title> <link rel="stylesheet" href="style.css"> </head> <body> <br> <center> <table border=0 width=95% height=90% cellspacing=0 cellpadding=0> <tr><td valign=top> <span class=text><b>Восстановление пароля:</b></span><br><br>
<?
switch($step){ default:
echo"<span class=text><big><b>Шаг #1</b></big><br><br> <form action=remind.php name=form1 method=post> <input type=hidden name=step value=2> * Ник персонажа: <input type=text name=login_p maxlength=15> <input type=submit value='далее >>'> </form><br><hr> * - Введите логин зарегистрирвоаного игрока, для которого вы хотите восстановить пароль.
</span>";
break; case"2": if(!$login_p){?><script language=JavaScript>window.location='remind.php?error=Незаполнены необходимые поля';</script><?exit();} $login_p = htmlspecialchars($login_p); $result = mysql_query("select login from users where login='$login_p'"); $num = mysql_num_rows($result);
if($num==0){?><script language=JavaScript>window.location='remind.php?error=персонаж <?echo $login_p;?> несуществует!';</script><?exit();} else { echo"<span class=text><big><b>Шаг #2</b></big><br><br> <form action=remind.php name=form1 method=post> <input type=hidden name=step value=3> <input type=hidden name=login_p value='".$login_p."'> * E-mail: <input type=text name=email_p> <input type=submit value='далее >>'> </form><br><hr> * - Введите установленый при регистрации e-mail игрока. </span>"; } break;
case"3":
if(!$login_p or !$email_p){?><script language=JavaScript>window.location='remind.php?step=2&error=Незаполнены необходимые поля';</script><?exit();} $login_p = htmlspecialchars($login_p); $email_p = htmlspecialchars($email_p);
$result = mysql_query("select login from users where login='$login_p' and email='$email_p'"); $num = mysql_num_rows($result);
if($num==0){?><script language=JavaScript>window.location='remind.php?step=2&login_p=<?echo $login_p;?>&error=Введённый e-mail несоответствует записаному в БД!';</script><?exit();} else { $azb_l = array('a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z'); $azb_b = array('A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z'); $new_pass = $azb_l[rand(0,25)].$azb_l[rand(0,25)].rand(0,20).$azb_b[rand(0,25)].$azb_b[rand(0,25)].rand(0,9); mysql_query("update users set pass='$new_pass' where login='$login_p'"); $send_to = $email_p; $subject = "Poke-x смена паролья"; $mailcontent = "ВНИМАНИЕ! Кто-то ".date("d.m.Y")." сменил пароль на доступ к вашему персонажу \"$login_p\"! в игре Poke-x
Новый пароль: $new_pass
Незабывайте про нас, мы работаем для Вас (http://poke-x.ru/)
------------------------------ С Ув. Администрация Poke-x email: Riolu@poke-x.ru
"; $headers = "From: Riolu@poke-x.ru"; mail($send_to, $subject, $mailcontent, $headers);
echo"<span class=text><b>Новый пароль был успешно выслан на указаный e-mail.</b></span>"; } break; } if($error) echo "<br><br><span class=text style='color:red;font-weight:bold'><b>Ошибка:</b></span><span class=text> <u>".$error."</u></span>"; ?> </td></tr> </table> </bodY> </html>
Рoke-x (ММОRPG про покемонов)
|
|
| |
Nosorog | Дата: Среда, 23 Мая 2012, 11:49 | Сообщение # 2 |
участник
Сейчас нет на сайте
| А откуда берутся переменные $step, $login_p, $email_p? Я вижу, что передаются параметры из формы, но не вижу что-бы скрипт их принимал!
Классическая ошибка, которую совершают проектировщики абсолютно надёжных систем, - недооценка изобретательности клинических идиотов.
|
|
| |
Assasin | Дата: Среда, 23 Мая 2012, 11:55 | Сообщение # 3 |
web-coder
Сейчас нет на сайте
| Может там register_globals=ON
|
|
| |
Nosorog | Дата: Среда, 23 Мая 2012, 17:23 | Сообщение # 4 |
участник
Сейчас нет на сайте
| Quote (Assasin) Может там register_globals=ON , что-то я не подумал об этом... У меня на denwer'e все доставляется Добавлено (23.05.2012, 17:23) --------------------------------------------- Попробуй так Quote mail($send_to, $subject, $mailcontent, $headers, sendmail);
Классическая ошибка, которую совершают проектировщики абсолютно надёжных систем, - недооценка изобретательности клинических идиотов.
|
|
| |
Riolu | Дата: Пятница, 25 Мая 2012, 23:19 | Сообщение # 5 |
почетный гость
Сейчас нет на сайте
| Quote (Nosorog) У меня на denwer'e все доставляется Можешь переделанный кинут у меня ничего не работает
Рoke-x (ММОRPG про покемонов)
|
|
| |
Nosorog | Дата: Суббота, 26 Мая 2012, 03:27 | Сообщение # 6 |
участник
Сейчас нет на сайте
| Я ничего не переделывал, просто скопипастил и проверил - письмо отправилось и доставилось. А ты случайно, не на денвере тестируешь? А то там стоит заглушка на sendmail, а сообщения хранятся в папке \tmp\!sendmail
Классическая ошибка, которую совершают проектировщики абсолютно надёжных систем, - недооценка изобретательности клинических идиотов.
|
|
| |
Riolu | Дата: Суббота, 26 Мая 2012, 22:46 | Сообщение # 7 |
почетный гость
Сейчас нет на сайте
| Quote (Nosorog) Я ничего не переделывал, просто скопипастил и проверил - письмо отправилось и доставилось. А ты случайно, не на денвере тестируешь? А то там стоит заглушка на sendmail, а сообщения хранятся в папке \tmp\!sendmail я проверял на денвере только сообщения не приходило, я поставил на своем сайта она на 2-й Шаг не переходило
Рoke-x (ММОRPG про покемонов)
|
|
| |
Nosorog | Дата: Воскресенье, 27 Мая 2012, 00:46 | Сообщение # 8 |
участник
Сейчас нет на сайте
| Quote (Riolu) я поставил на своем сайта она на 2-й Шаг не переходило Значит на хостинге register_globals=Off Code <? include ("db2.php"); include ("config.php"); $db = db($config); include ("bd.php"); Error_Reporting(E_ALL & ~E_NOTICE); ?> <html> <head> <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=windows-1251"> <title>Восстановление пароля</title> <link rel="stylesheet" href="style.css"> </head> <body> <br> <center> <table border=0 width=95% height=90% cellspacing=0 cellpadding=0> <tr><td valign=top> <span class=text><b>Восстановление пароля:</b></span><br><br>
<? $step = $_POST['step']; $error = $_GET['error']; switch($step){ default:
echo"<span class=text><big><b>Шаг #1</b></big><br><br> <form action=remind.php name=form1 method=post> <input type=hidden name=step value=2> * Ник персонажа: <input type=text name=login_p maxlength=15> <input type=submit value='далее >>'> </form><br><hr> * - Введите логин зарегистрирвоаного игрока, для которого вы хотите восстановить пароль.
</span>";
break; case"2": $login_p = $_POST['login_p']; if(!$login_p){?><script language=JavaScript>window.location='remind.php?error=Незаполнены необходимые поля';</script><?exit();} $login_p = htmlspecialchars($login_p); $result = mysql_query("select login from users where login='$login_p'"); $num = mysql_num_rows($result);
if($num==0){?><script language=JavaScript>window.location='remind.php?error=персонаж <?echo $login_p;?> несуществует!';</script><?exit();} else { echo"<span class=text><big><b>Шаг #2</b></big><br><br> <form action=remind.php name=form1 method=post> <input type=hidden name=step value=3> <input type=hidden name=login_p value='".$login_p."'> * E-mail: <input type=text name=email_p> <input type=submit value='далее >>'> </form><br><hr> * - Введите установленый при регистрации e-mail игрока. </span>"; } break;
case"3": $login_p = $_POST['login_p']; $email_p = $_POST['email_p']; if(!$login_p or !$email_p){?><script language=JavaScript>window.location='remind.php?step=2&error=Незаполнены необходимые поля';</script><?exit();} $login_p = htmlspecialchars($login_p); $email_p = htmlspecialchars($email_p);
$result = mysql_query("select login from users where login='$login_p' and email='$email_p'"); $num = mysql_num_rows($result);
if($num==0){?><script language=JavaScript>window.location='remind.php?step=2&login_p=<?echo $login_p;?>&error=Введённый e-mail несоответствует записаному в БД!';</script><?exit();} else { $azb_l = array('a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z'); $azb_b = array('A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z'); $new_pass = $azb_l[rand(0,25)].$azb_l[rand(0,25)].rand(0,20).$azb_b[rand(0,25)].$azb_b[rand(0,25)].rand(0,9); mysql_query("update users set pass='$new_pass' where login='$login_p'"); $send_to = $email_p; $subject = "Poke-x смена паролья"; $mailcontent = "ВНИМАНИЕ! Кто-то ".date("d.m.Y")." сменил пароль на доступ к вашему персонажу \"$login_p\"! в игре Poke-x
Новый пароль: $new_pass
Незабывайте про нас, мы работаем для Вас (http://poke-x.ru/)
------------------------------ С Ув. Администрация Poke-x email: Riolu@poke-x.ru
"; $headers = "From: Riolu@poke-x.ru"; mail($send_to, $subject, $mailcontent, $headers);
echo"<span class=text><b>Новый пароль был успешно выслан на указаный e-mail.</b></span>"; } break; } if($error) echo "<br><br><span class=text style='color:red;font-weight:bold'><b>Ошибка:</b></span><span class=text> <u>".$error."</u></span>"; ?> </td></tr> </table> </bodY> </html> Должно работать.Добавлено (27.05.2012, 00:46) --------------------------------------------- И всё-таки проверь на денвере папку sendmail
Классическая ошибка, которую совершают проектировщики абсолютно надёжных систем, - недооценка изобретательности клинических идиотов.
|
|
| |
Assasin | Дата: Воскресенье, 27 Мая 2012, 00:56 | Сообщение # 9 |
web-coder
Сейчас нет на сайте
| Либо проверь тут sendmail
|
|
| |
Riolu | Дата: Понедельник, 28 Мая 2012, 20:55 | Сообщение # 10 |
почетный гость
Сейчас нет на сайте
| Все всем спасибо за помощь
Рoke-x (ММОRPG про покемонов)
|
|
| |
|