Визуально SQL выполняется без ошибок, и даже последующие скрипты по условию стоящие за ним, исполняются, но данные в БД не изменяются! Запрос идёт UPDATE. Помогите!!!
$query = "UPDATE users SET `password` = '{$pass}', `salt` = '{$salt}' WHERE `id` = '{$id}'"; $sql = mysql_query($query) or die(mysql_error());
$login = (isset($_POST['login'])) ? mysql_real_escape_string($_POST['login']) : ''; $pass1 = (isset($_POST['pass1'])) ? mysql_real_escape_string($_POST['pass1']) : ''; $pass2 = (isset($_POST['pass2'])) ? mysql_real_escape_string($_POST['pass2']) : ''; if ($pass1 == $pass2){ $salt = GenerateSalt(); $pass = md5(md5($pass1) . $salt); $query = "SELECT id FROM users WHERE login ='{$login}' LIMIT 1"; $result = mysql_query($query); $row = mysql_fetch_assoc($result); $id = $row['id']; $query = "UPDATE users SET `password` = '{$pass}', `salt` = '{$salt}' WHERE `id` = '{$id}'"; $sql = mysql_query($query) or die(mysql_error()); //Проверяем прошла ли запись if ($sql){ echo '<caption><div class="qtitle">Восстановление</div></caption><tr><td> <font color="green">Пароль успешно восстановлен! <center><br />Новый пароль: <br><font size="3"><b>'.$pass1.'</b></font></center></font> <li><a href="login.php">Авторизоваться</a></li> '; }else{ echo '<caption><div class="qtitle">Восстановление</div></caption><tr><td> <font color="red">Произошла неизвестная ошибка!</font> <li><a href="lostpass.php">Попробовать снова</a></li> '; } }else{ echo ' <caption><div class="qerror"><b>Ошибка</b></div></caption><tr><td> <font color="red">Пароли не совпадают!</font> <li><a href="lostpass.php">Попробовать снова</a></li> '; }
error_reporting(E_ALL); В начало скрипта Или попробуй PHP: $login = (isset($_POST['login'])) ? mysql_real_escape_string($_POST['login']) : die("No login"); $pass1 = (isset($_POST['pass1'])) ? mysql_real_escape_string($_POST['pass1']) : die("No pass1"); $pass2 = (isset($_POST['pass2'])) ? mysql_real_escape_string($_POST['pass2']) : die("No pass2"); И тут: PHP: $query = "SELECT id FROM users WHERE login ='{$login}' LIMIT 1"; $result = mysql_query($query) or die(mysql_error()); Не знаю, как вы работаете. Я когда начинал изучать и не понимал, почему не работает код, всегда после каждого действия выводил переменные, проверял функции и т.д. А там уже становилось ясно, где косяки. Например: PHP: $query = "SELECT id FROM users WHERE login ='{$login}' LIMIT 1"; Я сразу после этого сделал бы: PHP: echo "DEBUG QUERY Line(123): ".$query." ; -- END"; Line(123) - Это номер строки в коде, чтобы потом понимать откуда выводится. И ВСТАВЛЯЙТЕ КОД В BB-ТЭГ [PHP ] ... [/PHP ]