2010-12-05 2 views
0

PHP가 여기에 새롭고 많은 것을 알지 못해서 제 문제는 제 코드의 모든 구문을 검사하고 여전히 "비밀번호가 일치하지 않습니다"라는 오류가 발생하더라도 데이터베이스의 암호가 내 이전 암호 필드에서 일치합니다. 당신이 저를 도울 수 있기를 바랍니다. 미안하지만 여전히 내 초보자인데 ...PHP 업데이트 사용자 - 오류 "비밀번호 일치하지 않음"

여기에 내 코드가 있습니다.

+0

또한 $ username && $ oldpassword 사이에 공백이 있어야한다고 생각하십니까? – Elliott

+0

나는 이미 그 오류 메시지를 받고있다. – emjhay

+0

@Elliot 왜 ===를 사용하겠습니까? == 작동하지 않는다면 === 확실히 작동하지 않을 것입니다 – PeeHaa

답변

1

요청을 통해 이전 암호를 검색하는 대신 데이터베이스에서 검색하십시오.

$query = mysql_query("SELECT password FROM tb_user WHERE username='$username' LIMIT 1"); 
$count = mysql_num_rows($query); 

if($count==1) 
{ 
    $result = mysql_fetch_assoc($query); 
    if($newpassword==$result["password"]) 
    { 
...... 

부수적으로. 유지/비교할 때 항상 암호 해시. 이 문서는 대부분 그것을 설명

http://phpsec.org/articles/2005/password-hashing.html

+0

이것은 오류 메시지입니다. 알림 : 정의되지 않은 색인 : 101 번 줄의 C : \ xampp \ htdocs \ FO \ account.php에있는 비밀번호 비밀번호가 일치하지 않습니다! – emjhay

+0

내가 쓰는 것을 사용하고 있습니까? 내가 제공 한 SQL을 사용하여 1 행을 성공적으로 선택하면 그 문제가 없어야합니다. 그렇지 않으면 $ result의 내용을 인쇄하십시오. 예 : var_dump ($ result); –

+0

예 메신저 사용하고 있지만 지금은 사용자 이름이 이미 메시지가 찍혀 있습니다. – emjhay

0

그냥 두 암호를 인쇄를 OLDpassword 및 내용을 확인 :

print($password); 
print($oldpassword); 

if($password==($oldpassword)) 

당신이 이전 암호를 캡슐화하는 이유는 무엇입니까?

+0

내 문제가 올바르게 내 나쁜 formating에 대한 다른 미안 게시 할 내 문제가 얻을 – emjhay

0

사용

if($newpassword==$oldpassword) 

임명하다

if($password==($oldpassword)) 

의 나는 당신의 문제가 해결 될 것이라 생각합니다. 데이터베이스에서 oldpass를 가져 오십시오.

관련 문제