Сохранение URL-адреса $_GET в ссылке, когда пользователь возвращается на ту же страницу. В mysql phpPhp

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 Сохранение URL-адреса $_GET в ссылке, когда пользователь возвращается на ту же страницу. В mysql php

Сообщение Anonymous »

Когда пользователь сбрасывает пароль, отправляя свой адрес электронной почты. Почта, которую они получают, выглядит примерно так.

Электронная почта

Код: Выделить всё

http://localhost/folder/folder/reset.php?email=foobar@foo.com&hash=07c5807d0d927
При нажатии на ссылку выше пользователь заполняет поля «Новый пароль» и «Подтверждение пароля». Мы получаем электронную почту и сообщения по URL-адресу. Код ниже.

reset.php

Код: Выделить всё

if( isset($_GET['email']) && !empty($_GET['email']) AND isset($_GET['hash']) && !empty($_GET['hash']) ) {
$email = $con->escape_string($_GET['email']);
$hash = $con->escape_string($_GET['hash']);
$result = $con->query("SELECT * FROM users WHERE email='$email' AND hash='$hash'");
if ( $result->num_rows == 0 ) {
$_SESSION['message'] = "Invalid URL for password reset!";
header("location: ../error.php");
}
}
else {
$_SESSION['message'] = "Verification failed, try again!";
header("location: ../error.php");
}


Мы используем код ниже, чтобы проверить соответствие пароля.

resetpassword.php

Код: Выделить всё

if ($_SERVER['REQUEST_METHOD'] == 'POST') {
// Make sure the two passwords match
if ( $_POST['newpassword'] == $_POST['confirmpassword'] ) {
$new_password = password_hash($_POST['newpassword'], PASSWORD_BCRYPT);

// We get $_POST['email'] and $_POST['hash'] from the hidden input field of reset.php form
$email = $con->escape_string($_POST['email']);
$hash = $con->escape_string($_POST['hash']);

$sql = "UPDATE users SET password='$new_password', hash='$hash' WHERE email='$email'";

if ( $con->query($sql) ) {
$_SESSION['message'] = "Your password has been reset successfully! [url=login.php]Login[/url]";
header("location: ../success.php");

}
}
else {
$_SESSION['message'] = "Passwords did not match, try again!";
header("location: ../reset.php");
}
}
Теперь проблема вот в чем. Если пароль пользователя не совпадает, он переходит на страницу reset.php и когда ему нужно вернуться, чтобы повторить попытку. Когда это произойдет, как мы вернем их электронную почту и хэш.

Код: Выделить всё

  else {
$_SESSION['message'] = "Passwords did not match, try again!";
header("location: ../reset.php");
}
Вот что мы получим, когда они вернутся.

Код: Выделить всё

http://localhost/folder/folder/reset.php


Подробнее здесь: https://stackoverflow.com/questions/492 ... page-in-my
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»