Нашел ответ !!
Нашел ответ после долгого перерыва, глядя на него!
просто менялся
$querynewpass = "UPDATE tz_members SET `pass`='".$_POST['$passwordnew1']."' WHERE usr='{$_SESSION['usr']}'";
до:
$querynewpass = "UPDATE tz_members SET `pass`='".md5($_POST['passwordnew1'])."' WHERE usr='{$_SESSION['usr']}'";
просто простой md5, который я пропустил!
Проблема:
я пытаюсь изменить пароль пользователя, используя форму, в которой он вводит свой текущий пароль и новый пароль. он должен проверить базу данных mySQL, чтобы увидеть, соответствует ли их текущий введенный пароль текущему пользователю сеанса, в который они вошли, и затем обновить базу данных mySQL новым паролем. Вот сценарий, который у меня есть для этого:
if($_POST['submit']=='Change')
{
// Checking whether the Password Change form has been submitted
$err = array();
// Will hold our errors
if(!$_POST['password1'] || !$_POST['passwordnew1'])
$err[] = 'All the fields must be filled in!';
if(!count($err))
{
$_POST['password1'] = mysql_real_escape_string($_POST['password1']);
$_POST['passwordnew1'] = mysql_real_escape_string($_POST['passwordnew1']);
// Escaping all input data
$row = mysql_fetch_assoc(mysql_query("SELECT id,usr FROM tz_members WHERE usr='{$_SESSION['usr']}' AND pass='".md5($_POST['password1'])."'"));
if($row['usr'])
{
// If everything is OK change password
$querynewpass = "UPDATE user SET `password`='".$_POST['$passwordnew1']."' WHERE id='".$_SESSION['usr']."'";
$resultnewpass = mysql_query($querynewpass) or die(mysql_error());
}
else $err[]='Wrong Password To Start With!';
}
if($err)
$_SESSION['msg']['passwordchange-err'] = implode('<br />',$err);
// Save the error messages in the session
header("Location: index.php");
exit;
}
но появляется сообщение об ошибке «Таблица« databasename.user »не существует»
у меня есть логин и форма регистрации, которые работают с использованием этого метода без ошибок!
UPDATE:
у меня есть база данных, в которой есть таблица с именем tz_members, а столбцами являются id, pass, user, regIP и dt
Мой MySQL запрос сейчас:
$querynewpass = "UPDATE tz_members SET `pass`='".$_POST['$passwordnew1']."' WHERE usr='{$_SESSION['usr']}'";
ОБНОВЛЕНО СНОВА
добавив код формы для вас, чтобы увидеть:
<!-- Pass Change Form -->
<form action="" method="post">
<?php
if($_SESSION['msg']['passwordchange-err'])
{
echo '<div class="err">'.$_SESSION['msg']['passwordchange-err'].'</div>';
unset($_SESSION['msg']['passwordchange-err']);
}
if($_SESSION['msg']['passwordchange-success'])
{
echo '<div class="success">'.$_SESSION['msg']['passwordchange-success'].'</div>';
unset($_SESSION['msg']['passwordchange-success']);
}
?>
<label class="grey" for="password1">Current Password:</label>
<input class="field" type="password" name="password1" id="password1" value="" size="23" />
<label class="grey" for="password">New Password:</label>
<input class="field" type="password" name="passwordnew1" id="passwordnew1" size="23" />
<input type="submit" name="submit" value="Change" class="bt_register" />
</form>