У меня есть базовая регистрация, вход в систему, веб-страница страницы профиля и запущен и недавно начали внедрять функции забытого пароля.Мои запросы обновления не будут работать
Все, кажется, работает, но мои запросы обновления просто не срабатывают.
Например, код на моей странице с забытым паролем создает новый ключ сброса, если адрес электронной почты и все совпадают, а затем отправляет код внутри ссылки (например, www.mydomain.net/forgotpassword.php?key=xxx) ,
На странице тесты, если ключ присутствует, когда вы землю, код которого находится ниже:
include ('database_connection.php');
session_start();
if($_GET['key'])
{
$key = $_GET['key'];
$query_check_key = "SELECT * FROM password_reset WHERE Reset_link='$key' AND Expiration>=NOW() AND used=0";
$result_check_key = mysqli_query($dbc, $query_check_key);
$result_check_row = $result_check_key->fetch_array(MYSQLI_ASSOC);
if(!$result_check_key) {
echo "Error";
}
if (mysqli_num_rows($result_check_key) == 1)
{
// Update the database to set the "used" field to 1
$query_link_used = "UPDATE password_reset SET Used=1 WHERE Reset_link='$key'";
$result_link_used = mysqli_query($dbc, $query_activate_account) ;
$_SESSION['Memberid'] = $result_check_row['Memberid'];
header("Location: reset_password.php");
}
}
Условный оператор имеет значение верно, когда я пытаюсь это как страница перенаправляется на reset_password.php и сеанс успешно создан правильно. Но когда я проверяю таблицу базы данных, поле Использовать не обновлялось.
Точно так же на странице reset_password.php запрос обновления не будет работать:
if (empty($error))
{
//Query to change password
$query_change_password = "UPDATE members SET Password=$hashed_password WHERE Memberid=$Memberid";
$result_change_password = mysqli_query($dbc, $query_change_password);
if (mysqli_affected_rows($dbc) > 0)//if update query was successful
{
echo '<div class="success">Your password has now been reset. You may now <a href="login.php">Log in</a></div>';
} else
{
echo '<div class="errormsgbox">Oops !Your password could not be reset. Please contact the system administrator.</div>';
}
mysqli_close($dbc);
}
Массив ошибок, безусловно, пустой и если оператор проверки затронутых строк остается на 0, как оператор возвращает ложь и возвращается к утверждению else.
Я запустил запросы в PHPMyAdmin, и они работают нормально, поэтому я не вижу, в чем проблема. Любая помощь приветствуется.
я думаю, что вы забыли вложить значение поля с цитатами, это suppost быть как «$ hashed_password» и также как CHK $ MemberID – user1844933
Я попробую попробовать, но в первом блоке кода переменные заключены в кавычки, то есть '' UPDATE password_reset SET Used = 1 WHERE Reset_link = '$ key' "' – James
В вашем обновлении вы запускаете $ query_activate_account, который я не могу см. в любом месте. – Mihai