Обучение/Помощь новичкам | Не могу понять.
Почему пишет емаил введен не верно? Один раз восстановил пароль теперь емаил не верный.
php
<?php require_once ('system/func.php'); $title = 'Восстановление ?'; require_once ('system/header.php'); $auth_ip = __DIR__.'/logs_auth/'.$_SERVER['REMOTE_ADDR']; if (file_exists($auth_ip)) { $auth_time = intval(file_get_contents($auth_ip)); } else { $auth_time = 0; } if(isset($_POST['pass'])) { $login = text($_POST['login']); $mail = text($_POST['mail']); if ($auth_time > time() - 1800 && $_POST['captcha'] != $_SESSION['captcha']) { file_put_contents($auth_ip, time()); $err = 'Неверный проверочный код!'; } elseif(empty($login)) { $err = 'Введите логин'; } elseif(!$sql = mysql_fetch_array(mysql_query("SELECT * FROM `users` WHERE `login` = '".$login."' LIMIT 1"))) { $err = 'Игрок с таким логином не существует'; file_put_contents($auth_ip, time()); } elseif($mail != $sql['email']) { $err = 'E-mail введён неверно'; file_put_contents($auth_ip, time()); } elseif(!$err) { $pass = rand(1000000, 9000000); mysql_query("UPDATE `users` SET `password` = '".(md5($pass.'123abc'))."' WHERE `login` = '".$login."'"); $msg = 'Здравствуйте '.$login.'! Вами была произведена операция по восстановлению пароля на сайте http://ligepox.ru/ Ваши данные для входа в аккаунт: Логин: '.$login.' Пароль: '.(($pass.'123abc')).' '; $subject = 'Восстановление пароля'; mail($sql['email'],$subject,$msg,"From: admin@ligepox.ru"); $_SESSION['msg'] = "Письмо отправлено"; header('Location: /recovery/'); exit(); } $_SESSION['msg'] = $err; header('Location: /recovery/'); exit(); } ?> <div class="block_C">Восстановление пароля</div> <form class="cont_ent" action="" method="post"> <div class="header">Введите логин<br> <input class="form_text" type="text" name="login" maxlength="20" value="" placeholder="" required/> <br> Введите email<br> <input class="form_text" type="text" name="mail" maxlength="50" value="" placeholder="" required/><br> <?php if ($auth_time > time() - 1800) {?> Проверочный код <img src="/captcha/captcha.php" id="captcha" onclick="document.getElementById('captcha').src ='/captcha/captcha.php?' + Math.random()"><br> <input class="form_text" type="text" name="captcha" maxlength="25" placeholder="" autocomplete="off" required/><br/> <?php }?> <input type="submit" class="btn_grey" name="pass" class="btn_grey" value="Восстановить"></form> </div> <? //echo div('btn_grey').' <a href="r.php"> Начать игру </a> </div>'; echo div('bbtn mb5').' <a href="/"> Вернуться назад </a> </div>'; //require_once ('system/footer.php'); ?>
У тебя майл проверяется из базы но не фильтруется.
Дело в том что майл уже есть в базе, а тот код его видит и закрывает значение, в итоге чего пишит майл и т.д.
Дело в том что майл уже есть в базе, а тот код его видит и закрывает значение, в итоге чего пишит майл и т.д.
А куда там вставить надо? Не работает, вроде вставил.
php
$login = text($_POST['login']); $mail = text($_POST['mail']); if ($auth_time > time() - 1800 && $_POST['captcha'] != $_SESSION['captcha']) { file_put_contents($auth_ip, time()); $err = 'Неверный проверочный код!'; } elseif(empty($login)) { $err = 'Введите логин'; } elseif(!$sql = mysql_fetch_array(mysql_query("SELECT * FROM `users` WHERE `login` = '".$login."' LIMIT 1"))) { $err = 'Игрок с таким логином не существует'; file_put_contents($auth_ip, time()); } elseif(!$sql = mysql_fetch_array(mysql_query("SELECT * FROM `users` WHERE `login` = '".$login."' LIMIT 1"))) { $err = 'E-mail введён неверно'; file_put_contents($auth_ip, time()); } elseif(!$err) { $pass = rand(1000000, 9000000); $sql = mysql_query("UPDATE `users` SET `password` = '".(md5($pass.'123abc'))."' WHERE `login` = '".$login."'"); $msg = 'Здравствуйте '.$login.'! Вами была произведена операция по восстановлению пароля на сайте http://ligepox.ru/ Ваши данные для входа в аккаунт: Логин: '.$login.' Пароль: '.(($pass.'123abc')).' '; $subject = 'Восстановление пароля'; mail($sql['email'],$subject,$msg,"From: admin@ligepox.ru"); $_SESSION['msg'] = "Письмо отправлено"; header('Location: /recovery/'); exit(); } так надо было сделать? Вроде работает а на почту не приходит.
php
$login = text($_POST['login']); $mail = text($_POST['mail']); if ($auth_time > time() - 1800 && $_POST['captcha'] != $_SESSION['captcha']) { file_put_contents($auth_ip, time()); $err = 'Неверный проверочный код!'; } elseif(empty($login)) { $err = 'Введите логин'; } elseif(!$sql = mysql_fetch_array(mysql_query("SELECT * FROM `users` WHERE `login` = '".$login."' LIMIT 1"))) { $err = 'Игрок с таким логином не существует'; file_put_contents($auth_ip, time()); } elseif(!$sql = mysql_fetch_array(mysql_query("SELECT * FROM `users` WHERE `login` = '".$login."' LIMIT 1"))) { $err = 'E-mail введён неверно'; file_put_contents($auth_ip, time()); } elseif(!$err) { $pass = rand(1000000, 9000000); $sql = mysql_query("UPDATE `users` SET `password` = '".(md5($pass.'123abc'))."' WHERE `login` = '".$login."'"); $msg = 'Здравствуйте '.$login.'! Вами была произведена операция по восстановлению пароля на сайте http://ligepox.ru/ Ваши данные для входа в аккаунт: Логин: '.$login.' Пароль: '.(($pass.'123abc')).' '; $subject = 'Восстановление пароля'; mail($sql['email'],$subject,$msg,"From: admin@ligepox.ru"); $_SESSION['msg'] = "Письмо отправлено"; header('Location: /recovery/'); exit(); }
ini_set('display_errors', '1');
ini_set('display_startup_errors', '1');
error_reporting(E_ALL);
ini_set('display_startup_errors', '1');
error_reporting(E_ALL);