так как im new здесь в php и не знаю много, моя проблема в том, что я проверяю каждый синтаксис на моем коде, и все же я получаю эту ошибку "password didnt match", даже если старый пароль в базе данных соответствует моему старому паролю поле.. надеюсь, что вы можете мне помочь, и извините за мое плохое форматирование im все еще новичок..
здесь мой код.
<?php
$submit = strip_tags($_POST['submit']);
$username = strtolower(strip_tags($_POST['username']));
$oldpassword = strip_tags($_POST['oldpassword']);
$newpassword = strip_tags($_POST['newpassword']);
$firstname = strip_tags($_POST['first']);
$lastname = strip_tags($_POST['last']);
$gender = strip_tags($_POST['gender']);
$address = strip_tags($_POST['address']);
$zipcode = strip_tags($_POST['zip']);
$contact = strip_tags($_POST['con']);
$email = strip_tags($_POST['mail']);
error_reporting(0);
if($submit)
{
if($username&& $oldpassword && $newpassword && $firstname && $lastname && $address && $zipcode && $contact && $email)
{
$connect = mysql_connect("localhost","root","") or die(mysql_error());
mysql_select_db("brightlights") or die(mysql_error());
$updatecheck = mysql_query("SELECT * FROM tb_user WHERE username='$username'");
$count = mysql_num_rows($updatecheck);
if($count<=1)
{
if($password==($oldpassword))
{
mysql_query("UPDATE tb_user SET
username = '$username',
password = '$newpassword',
Firstname = '$firstname',
Lastname = '$lastname',
gender = '$gender',
address = '$address',
zipcode = '$zipcode',
contact = '$contact',
email = '$email'
WHERE username='".$_SESSION['username']."'");
$_SESSION['username'] = $username;
$_SESSION['password'] = $newpassword;
$_SESSION['Firstname'] = $firstname;
$_SESSION['Lastname'] = $lastname;
$_SESSION['gender'] = $gender;
$_SESSION['address'] = $address;
$_SESSION['zipcode'] = $zipcode;
$_SESSION['contact'] = $contact;
$_SESSION['email'] = $email;
session_write_close();
echo "Succesfully Updated!";
}else
echo "Password not match!";
}else
echo "Username already Taken!";
}else
echo "Please fill up all form!";
}
?>
Вместо того, чтобы возвращать старый пароль через запрос, извлеките его из базы данных.
$query = mysql_query("SELECT password FROM tb_user WHERE username='$username' LIMIT 1");
$count = mysql_num_rows($query);
if($count==1)
{
$result = mysql_fetch_assoc($query);
if($newpassword==$result["password"])
{
......
Как примечание. Всегда использовать хэш-пароли при их сохранении/сравнении. В этой статье описывается большинство из них:
Используйте
if($newpassword==$oldpassword)
instate
if($password==($oldpassword))
Я думаю, ваша проблема будет решена. и попытайтесь получить oldpass из базы данных.
Просто распечатайте оба пароля и oldpassword и проверьте содержимое:
print($password);
print($oldpassword);
if($password==($oldpassword))
Почему вы инкапсулируете старый пароль?