хочу, чтобы мои пользователи могли изменять пароль пользователя

У меня есть страница на моем сайте, которая позволяет пользователям менять свои пароли

Форма запрашивает имя пользователя, текущий пароль, новый пароль, подтверждение нового пароля.

Если пользователь вводит всю информацию, появляющуюся в скрипте, пожалуйста, заполните форму правильно

и сообщение об ошибке показывает

(Примечание: неопределенная переменная: wtbusers в
/ home / www / hostname / dr / filename в строке 16

Предупреждение: mysql_num_rows (): предоставленный аргумент не является допустимым MySQL
ресурс результатов в / home / www / hostname / dr / filename в строке 20)

Мой код вставлен ниже, если кто-то может помочь, это будет с благодарностью! Спасибо!

Тина

Экран смены пароля:

<div id="inlogscherm">
<form name="form1" method="post" action="changepw.php">
<div class="textm">Change password</div><br>
<div class="text">Username:</div><div class="invulbalkje"><? echo "{$_SESSION['username']}"; ?></div><br />
<input name="username" type="text" id="username" value="<? echo "{$_SESSION['username']}"; ?>">
<div class="text">Password:</div><input name="pin" type="password" id="pin" class="invulbalkje"><br />
<div class="text">New Password:</div><input name="newpassword" type="password" id="newpassword" class="invulbalkje"><br />
<div class="text">Repeat New Password:</div><input name="repeatnewpassword" type="password" id="repeatnewpassword" class="invulbalkje"><br />
<input type="submit" name="Submit" value="Change" class="button">
</form>

вот php для изменения. (changepw.php)

<?php
error_reporting(E_ALL);
ini_set('display_errors', 1);
session_start();
include 'db.php';


$username = $_POST['username'];
$pin = $_POST['pin'];
$newpassword = $_POST['newpassword'];
$repeatnewpassword = $_POST['repeatnewpassword'];

$encrypted_password=md5($pin);
$encrypted_newpassword=md5($newpassword);

$result = mysql_query("SELECT pin FROM $wtbusers WHERE  username='$username' and pin = '$pin'");
if(!$result)
{
echo"<script>alert('Please Fill Form Correctly')</script>"; }
if(mysql_num_rows($result)){
if($newpassword==$repeatnewpassword){
$sql=mysql_query("UPDATE $wtbusers SET pin='$pin' where   username='$username'");
if($sql)
{
header("location:success.php");
}
else
{

header("location:error3.php");
}
} else {

header("location:error_password_not_matched.php");
}
} else {

echo"<script>alert('Please Fill Form Correctly')</script>";
}
?>

Если вы видите проблему, пожалуйста, свяжитесь со мной. Я буду очень благодарен за это!

-4

Решение

Уведомление было, что вы не создали переменную с именем $ wtbusers.

$ wtbusers = ‘users«; // это должно быть определено (измените его на любое другое имя таблицы)

Попробуйте приведенный ниже код.

error_reporting(E_ALL);
ini_set('display_errors', 1);
session_start();
include 'db.php';

// print_r($_POST);

if (isset($_POST['username'])) {
$username = $_POST['username'];
}
if (isset($_POST['pin'])) {
$pin = $_POST['pin'];
}
if (isset($_POST['newpassword'])) {
$newpassword = $_POST['newpassword'];
}
if (isset($_POST['repeatnewpassword'])) {
$repeatnewpassword = $_POST['repeatnewpassword'];
}

$encrypted_password = md5($pin);
$encrypted_newpassword = md5($newpassword);
$wtbusers = '`users`'; //this should be defined (change this to your whatever table name)

$result = mysql_query("SELECT pin FROM $wtbusers WHERE  username='$username' and pin = '$pin'");
if (!$result) {
echo "<script>alert('Please Fill Form Correctly')</script>";
}

if (mysql_num_rows($result) != 0) {

if ($newpassword == $repeatnewpassword) {

$sql = mysql_query("UPDATE $wtbusers SET pin='$pin' where   username='$username'");

if ($sql) {
header("location:success.php");
}
else {
header("location:error3.php");
}

}
else {
header("location:error_password_not_matched.php");
}
}
else {
echo "<script>alert('Please Fill Form Correctly')</script>";
}
0

Другие решения

Других решений пока нет …