Пользователь обновления PHP - ошибка «пароль не совпадает»

0

так как 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!";



}           
?>
  • 0
    Также я считаю, что между $ username && $ oldpassword должен быть пробел?
  • 0
    я уже сделал это, и его ошибка по-прежнему получаю это сообщение ..
Показать ещё 6 комментариев
Теги:

3 ответа

1

Вместо того, чтобы возвращать старый пароль через запрос, извлеките его из базы данных.

$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"])
  {
......

Как примечание. Всегда использовать хэш-пароли при их сохранении/сравнении. В этой статье описывается большинство из них:

http://phpsec.org/articles/2005/password-hashing.html

  • 0
    это сообщение об ошибке, которое я получаю Уведомление: неопределенный индекс: пароль в C: \ xampp \ htdocs \ FO \ account.php в строке 101 Пароль не совпадает!
  • 0
    Вы используете то, что я написал? Если вы успешно выбрали 1 строку (используя предоставленный мною SQL), у вас не должно быть этой проблемы. В противном случае выведите содержимое $ result. например: var_dump ($ result);
Показать ещё 4 комментария
0

Используйте

if($newpassword==$oldpassword)

instate

if($password==($oldpassword))

Я думаю, ваша проблема будет решена. и попытайтесь получить oldpass из базы данных.

0

Просто распечатайте оба пароля и oldpassword и проверьте содержимое:

print($password);
print($oldpassword);

if($password==($oldpassword))

Почему вы инкапсулируете старый пароль?

  • 0
    Вы не поняли мои проблемы правильно, позвольте мне опубликовать еще один извините за мое плохое форматирование

Ещё вопросы

Сообщество Overcoder
Наверх
Меню