2015-09-26 2 views
-4

У меня есть страница на моем сайте, который позволяет пользователям изменять свои паролихочу, чтобы мои пользователи должны abble изменить Парольпользователь

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

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

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

(Примечание: Undefined переменной: wtbusers в /дома/WWW/имя хоста/др/имя файла в строке 16

Предупреждение: mysql_num_rows(): поставляется аргумент не является допустимым MySQL результат ресурсов в/главная/WWW/имя хоста/дг/имя файла в строке 20)

Мой код вклеен ниже, если кто-то может помочь, был бы признателен! Благодаря!

Тина

Changepassword информационный экран:.

<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>"; 
} 
?> 

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

+0

Yuu необходимо присвоить имя таблицы в ваших «$ wtbusers» переменной, что-то вроде $ wtbusers = «пользователей» – kamus

+0

Пожалуйста, вы можете быть более конкретным? $ wtbusers уже является моим именем таблицы. Спасибо – Tina

+0

Если имя таблицы начинается с $, вы должны избегать использования «и изменять для», потому что все в кавычках будет анализироваться php и скажет, что $ wtbusers не определено, потому что в вашем php-файле вы не определяете эту переменную. – kamus

ответ

0

Уведомление о том, что вы не создали переменную под названием $ 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

большое вам спасибо, сообщение об ошибке больше не отображается, его теперь успешно, но есть еще одна проблема, информация не обновляется в моей базе данных. Что делать? – Tina

+0

@Tina, ваш приветствуем..ok прежде всего вам нужно изменить бит в коде ... у меня есть u pdated вышеприведенный код..пожалуйста, скопируйте пасту выше и посмотрите результат .. – jlocker

+0

Я обновил свой сценарий до вышесказанного, он повторил, пожалуйста, заполните форму правильно и отобразите эту ошибку. msg (Warning: Неверный параметр count для mysql_num_rows() в/home/WWW/имя_сайта/каталог/changepw.php в строке 21) это то, что находится в моей строке 21 (if (mysql_num_rows()! = 0)) – Tina