-1
Не могли бы вы помочь мне в том, что не так с моим кодом? Кажется, я не могу найти ошибку. Моя проблема заключается в том, что новый пароль не сохраняется в моей базе данных. Я не могу войти в систему с моим новым паролем.Сменить пароль не работает php
Это мой PHP-код.
<?php
session_start();
$uid = $_SESSION["uid"];
if($uid)
{
//user is logged in
if(isset($_POST["changepwbtn"]))
{
// check fields
$oldpw = $_POST['old_pw'];
$newpw = $_POST['new_pw'];
$renewpw = $_POST['c_npw'];
//check pw db
$sql = "SELECT pazzword FROM customer_info where user_id = '$uid'";
$run_query = mysqli_query($con,$sql);
$row = mysqli_fetch_array($run_query);
$oldpwdb = $row['pazzword'];
//check pw
if($oldpw==$oldpwdb)
{
//check two new pw
if($newpw==$renewpw)
{
$query_change = mysql_query("UPDATE customer_info SET pazzword = '$newpw' WHERE user_id = '$uid'");
session_destroy();
die("Your password has been changed! <a href='index.php'>Return</a>");
}
else
die("New passwords doesn`t match!");
}
else
die("Old password doesn`t match");
}
echo" ";
}
else
die("You need to log in!");
?>
Это очень плохо. Много ошибок. Основная проблема заключается в том, что ваш SQL уязвим для SQL Injection, а вторая главная проблема заключается в том, что вы используете устаревшие функции mysql_ *. – Raptor
Во-первых, вы уверены, что '' uid' содержит какие-либо данные? Проверьте все переменные, которые хранят данные, которые вам нравятся, - если они это сделают, то все это связано с запросами. Во-вторых, ваш первый запрос выполняется через mysqli_, а второй - через mysql_. Как упоминалось выше, Raptor лучше использовать 'mysqli_ *' или 'PDO'. –
Вы зашифровали свой пароль? если это условие не возвращает истинное значение, поэтому ваш запрос на обновление не будет выполнен [if ($ oldpw == $ oldpwdb)] – SarangaR