Я сделал веб-приложение, и мне нужно разрешить пользователям менять свой пароль, поэтому я создал столбец с временным кодом. Дело в том, что мой запрос обновляет мой временный код, но не обновляет пароль до нового. Пожалуйста, помогите, спасибо заранее! 😉
<?php
if(isset($_POST['submit'])) {
$code = $_SESSION['code'];
$email = $_SESSION['emailneger'];
$password = $_POST['password2'];
$password1 = $_POST['password3'];
$reset = $_POST['reset'];
$tempcode = "";
if($reset == $reset) {
if($password == $password1) {
$query = "UPDATE consultant SET password = ?
AND tempcode = ?
WHERE email = ? ";
$qry=$db->prepare($query);
$qry->execute(array($password, $code, $email));
echo "<p>Uw wachtwoord is hersteld!</p>";
$query = 'UPDATE consultant SET tempcode = ? WHERE email = ?';
$qry=$db->prepare($query);
$qry->execute(array($tempcode, $email));
} else {
echo "<p>Wachtwoorden komen niet overeen.</p>";
}
} else {
echo "<p>Je link is ongeldig, probeer nogmaals alstublieft!</p>";
}
}
?>
Ваше обновление неверно. Синтаксис
UPDATE yourtable SET field1=value1, field2=value, ...
^---
Обратите внимание ,
между парами поле / значение. Вы используете AND
, который будет проанализирован / выполнен как
UPDATE consultant SET password = (? AND tempcode = ?) WHERE email = ?
UPDATE consultant SET password = ('foo' AND tempcode=123) WHERE email = 'foo@example.com')
UPDATE consultant SET password = ('foo' AND true/false) WHERE ...
UPDATE consultant SET password = true/false WHERE ...
Других решений пока нет …