2014-09-18 3 views
-1

PHP에서 비밀번호 페이지를 변경하려고하는데 문제가 있습니다. 친절하게 제가 문제가되고있는 곳으로 안내해줍니다. 잘못된 passwordCongratulations을, 암호를 성공적으로 체결 :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()); 
} 

?> 

나는이 오류를 얻고, 내가 암호를 변경할 수 없습니다입니다 변경되었습니다! 비밀 번호를 변경할 수 없습니다 친절하게 말해 내가 실수를하고있는 곳. 미리 감사드립니다.

+0

어떤 오류가 발생하고 있습니까? – Zeeshan

+0

내가 값을 입력 한 경우에도 오류가 발생합니다 (들) 비워 둘 수 없습니다 –

+0

너무 많은 코드입니다. 다음 번에 코드 샘플을 좁히는 것에 대해 생각해보십시오. – user3791372

답변

1

id을 입력 태그에 name으로 혼합했다고 생각합니다. 와

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

바꾸기 ... ... ... 당신이 입력 태그 name로 지정 무엇이든 기본적으로

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

$_POST을 통해 얻을 수있을 것이다 것입니다 .

따라서 <input name="whatever" />$_POST['whatever']이됩니다.

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

$password = $_POST['password']; 

$ _POST HTML 태그의 name 속성을 받아 들여야합니다.

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

을 아니면 입력의 name을 대체 :

0

당신은 캡처해야합니다.

2

봅니다이 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

$ 게시물이 수정되었습니다. 이제이 문제가 발생합니다. 잘못된 비밀번호를 입력하셨습니다. 축하합니다. 비밀번호가 성공적으로 변경되었습니다. 암호를 변경할 수 없습니다 –

+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이 작동 시도를 참조하여 필드 이름을 변경 .... 당신의 실수를이와 양식을 대체하고 PHP 코드를 개선하기 위해 시도 벌금.

관련 문제