2014-09-18 4 views
-1

Я делаю страницу смены пароля в php, у меня проблема. Пожалуйста, помогите мне, где я получаю проблемы.Как сменить пароль в PHP

<form action="do_change_password.php" method="post"> 
<table width="70%" cellpadding="0" cellspacing="0" align="center" border="0"> 
<tr> 
<td colspan="2" align="center"> 
<h2>CHANGE PASSWORD</h2> 
</td> 
</tr> 
<tr> 
<td>&nbsp;</td> 
<td>&nbsp;</td> 
</tr> 
<tr> 
<td width="40%" height="30">Current Password 
</td> 
<td width="60%"> 
<input name="password" type="password" id="password" size="30"/> 
</td> 
</tr> 
<tr> 
<td height="30">New Password</td> 
<td> 
<input name="newpassword" type="password" id="newpassword" size="30"/> 
</td> 
</tr> 
<tr> 
<td height="30">Confirm New Password</td> 
<td> 
<input name="confirmnewpassword" type="password" id="confirmnewpassword" size="30"/> 
</td> 
</tr> 
<tr> 
<td height="30" colspan="2" align="center"> 
<input name="submit" type="submit" value="Submit" id="submit_btn"/> 
<input name="reset" type="reset" value="Reset" id="reset"/> 

</td> 
</tr> 
</table> 
</form> 

do_change_password.php

<?php 
include 'includes/dbConnect.php'; 

$password = $_POST['password']; 
$newpassword = $_POST['newpassword']; 
$confirmnewpassword = $_POST['confirmnewpassword']; 

$error_msg = "Field(s) cannot be empty"; 


if ($password == '' || $newpassword == '' ||$confirmnewpassword == '') 
    { 
     echo $error_msg; 
     exit; 
    } 

$result = mysql_query("SELECT password FROM users WHERE password='$password'"); 

     if 
     ($password != mysql_result($result< 0)) 
     { 
      echo "Entered an incorrect password"; 
     } 

     if($newpassword == $confirmnewpassword) 
     { 
    $sql = mysql_query("UPDATE registration SET password = '$newpassword' WHERE password='$current_password'");  
     } 

     if(!$sql) 
     { 
      echo "Congratulations, password successfully changed!"; 
     } 
     else 
     { 
      echo "New password and confirm password must be the same!"; 
     } 
?> 

dbConnect.php

<?php 
error_reporting(E_ERROR); 
global $link; 

$servername='localhost'; 
$dbname='school'; 
$dbusername='root'; 
$dbpassword=''; 
$table_Name="students"; 

$link = mysql_connect($servername,$dbusername,$dbpassword); 

if (!$link) { 
die('Could not connect: ' . mysql_error()); 
} 
else 
{ 
mysql_select_db($dbname,$link) or die ("could not open db".mysql_error()); 
} 

?> 

Я получаю эту ошибку, я не в состоянии изменить пароль: Введен неверный passwordCongratulations, пароль успешно изменилось! не могу изменить пароль. Пожалуйста, скажите мне, где я делаю ошибку. Заранее спасибо

+0

какая ошибка вы получаете? – Zeeshan

+0

если я ввожу значение, также я получаю сообщение об ошибке не может быть пустым –

+0

слишком много кода. подумайте о сужении ваших образцов кода в следующий раз – user3791372

ответ

1

Я считаю, что вы перепутали id с name во входных тегах.

Replace ...

<input name="current" type="password" id="password" size="30"/> 

... с ...

<input id="current" type="password" name="password" size="30"/> 

В основном все, что вы определяете, как name в ваших входных тегов, что вы будете иметь возможность получить через $_POST ,

Таким образом, <input name="whatever" /> будет $_POST['whatever'].

1
<input name="current" type="password" id="password" size="30" name="password"/> 

$password = $_POST['password']; 

$ _POST необходимо принять атрибут name из тега html.

0

Вы должны захватить:

$password = $_POST['current']; 
$newpassword = $_POST['new']; 
$confirmnewpassword = $_POST['confirm-new']; 

Или заменить name ваших входов.

2

Попробуйте заменить форму с этим .... свою ошибку, чтобы изменить имена полей, и попытаться улучшить свой код PHP увидеть это SQL injection

<form action="do_change_password.php" method="post"> 
<table width="70%" cellpadding="0" cellspacing="0" align="center" border="0"> 
<tr> 
<td colspan="2" align="center"> 
<h2>CHANGE PASSWORD</h2> 
</td> 
</tr> 
<tr> 
<td>&nbsp;</td> 
<td>&nbsp;</td> 
</tr> 
<tr> 
<td width="40%" height="30">Current Password 
</td> 
<td width="60%"> 
<input name="password" type="password" id="password" size="30"/> 
</td> 
</tr> 
<tr> 
<td height="30">New Password</td> 
<td> 
<input name="newpassword" type="password" id="newpassword" size="30"/> 
</td> 
</tr> 
<tr> 
<td height="30">Confirm New Password</td> 
<td> 
<input name="confirmnewpassword" type="password" id="confirmnewpassword" size="30"/> 
</td> 
</tr> 
<tr> 
<td height="30" colspan="2" align="center"> 
<input name="submit" type="submit" value="Submit" id="submit_btn"/> 
<input name="reset" type="reset" value="Reset" id="reset"/> 

</td> 
</tr> 
</table> 
</form> 
+0

$ post исправлено, теперь я получаю это Введен неверный парольСоединения, пароль успешно изменен! не может изменить пароль –

+0

@MuhammadRizwan Ваша проблема решена или еще вы ожидаете решения. – Zeeshan

+0

Bro теперь я получаю сообщение об ошибке, не удалось изменить пароль, получив эту ошибку. Введен неверный пароль. Поздравления, пароль успешно изменен! –

1
<form action="do_change_password.php" method="post"> 
<table width="70%" cellpadding="0" cellspacing="0" align="center" border="0"> 
<tr> 
<td colspan="2" align="center"> 
<h2>CHANGE PASSWORD</h2> 
</td> 
</tr> 
<tr> 
<td>&nbsp;</td> 
<td>&nbsp;</td> 
</tr> 
<tr> 
<td width="40%" height="30">Current Password 
</td> 
<td width="60%"> 
<input name="password" type="password" id="password" size="30"/> 
</td> 
</tr> 
<tr> 
<td height="30">New Password</td> 
<td> 
<input name="newpassword" type="password" id="newpassword" size="30"/> 
</td> 
</tr> 
<tr> 
<td height="30">Confirm New Password</td> 
<td> 
<input name="confirmnewpassword" type="password" id="confirmnewpassword" size="30"/> 
</td> 
</tr> 
<tr> 
<td height="30" colspan="2" align="center"> 
<input name="submit" type="submit" value="Submit" id="submit_btn"/> 
<input name="reset" type="reset" value="Reset" id="reset"/> 

</td> 
</tr> 
</table> 
</form> 

попробовать this..it будет работать хорошо.

Смежные вопросы