Как получить значение токена из URL-адреса
Привет, я новичок в php. Я хотел бы создать систему сброса пароля.
1.пользователь нажимает кнопку "Забыли пароль".
2.Тип пользователя имя пользователя и адрес электронной почты
3.пользователь получил электронное письмо
4.пользователь нажимает ссылку в Почте
5.пользователь переходит на новую страницу и вводит новый пароль
все идет гладко, проблема в том, что как только пользователь вводит новый пароль, ничего не происходит.
<?php if (isset($_POST['submit_pass'])) { $new_pass = mysqli_real_escape_string($db, $_POST['new_pass']); $new_pass_c = mysqli_real_escape_string($db, $_POST['new_pass_c']); $token =$_SESSION['token']); if (empty($new_pass) || empty($new_pass_c)) {array_push($errors, "Password is required");} if ($new_pass !== $new_pass_c) {array_push($errors, "Password do not match");} if (count($errors) == 0) { $sql = "SELECT * FROM password_resets WHERE token='$token' LIMIT 1"; $results = mysqli_query($db, $sql) or trigger_error( "Query Failed!". mysqli_error($db)); $email = mysqli_fetch_assoc($results)['username']; if ($email) { $new_pass = md5($new_pass); $sql = "UPDATE tutor SET password='$new_pass' WHERE tutor_username='$email'"; $results = mysqli_query($db, $sql) or trigger_error( "Query Failed!". mysqli_error($db)); header('location: ../st_login.php'); } } } ?>
Что я уже пробовал:
я пытался измениться.
$_SESSIONвместо
$_GETили
$_REQUEST
Richard Deeming
Вы действительно не должны все еще использовать MD5 для хранения паролей. Это не было безопасно в течение довольно долгого времени.
PHP имеет встроенные методы, которые дадут вам более безопасный хэш:
PHP: password_hash[^]
РНР: функцию password_verify[^]
(Хотя рад видеть кого-то, кто не хранит пароли в обычном тексте. :) )