2010-02-06 2 views
0

코드를 확인 php.Plz에비밀번호 나는를 만드는 모두의 ... 내가 뭐하는 거지 무엇을 말하고 page..NOw 내 집에 링크 암호 변경이

  • 먼저 변경하기되지 않는다 html 양식은 edit_profile.php라는 이름으로 세 개의 textboxes 이전 암호, 새 암호, password를 확인합니다. 암호 변경을위한 홈 페이지 링크로이 페이지를 캡슐화했습니다.
  • 다음 페이지가 내가있는 내가 새 비밀번호 경우 comaparing하고 edit_profile1.php 이름을 지정하고 확인 암호가되어 같거나
  • 그럼 내가 암호로 데이터를 검색하는 쿼리 = 이전 암호를 만들기하지 않도록 설계 한

그러나 이 페이지는 내가 두 파일 모두 당신에게 코드를 제공하고 마지막에 내가 ... 내가 직면하고 어떤 종류의 오류

edit_profile.php 
<?php 
session_start(); 
?> 

<html> 
<body bgcolor="pink"> 
<table cellpadding="10" cellspacing="6" align="center" width="500"> 
<form name="form" action="edit_profile1.php" method="POST" > 
<tr> 
<td><b><i>Your Username</i></b></td> 
<td><input type="text" name="username" id="username" size="30" maxlength="30" value="<?php echo $_SESSION['employee']['username']; ?>" disabled="disabled"></td> 
</tr> 

<tr> 
<td><b><i>Old Password</i></b></td> 
<td><input type="password" name="opassword" id="opassword" size="30" maxlength="30" value="" ></td> 
</tr> 


<tr> 
<td><b><i>New Password</i></b></td> 
<td><input type="password" name="npassword" id="npassword" size="30" maxlength="30" value="" ></td> 
</tr> 


<tr> 
<td><b><i>Confirm Password</i></b></td> 
<td><input type="password" name="cpassword" id="cpassword" size="30" maxlength="30" value="" ></td> 
</tr> 


<tr> 
<td align="center" colspan="100"> <input type="submit" name="submit" value="Change Password"></td> 
</tr> 

</table>  
</body> 
</html> 

다음 페이지

당신을 말할 것이다 working.Now 아니다

오류 :

내가 오류가 Thhere 내 프로그램 자체를 실행하려고 할 때마다 내가 wrong.In 하락하고 어디에서 받고 있지 않다

이제 데이터베이스 암호와 이전 암호를 macthing에 약간의 문제는 데이터베이스 난 단지 하나의 사용자 row.Plz 말해 무엇이 오류입니까

+0

코드가 엉망인 것 같습니다. '$ a','$ b','$ c'보다 더 명확한 변수 이름을 사용해야합니다! – lamas

답변

1

$query="select * from employee where Username='{$usr}' and Password='{$c}'"; 

대신

$a = hash('sha1', $a); // added after conversation in comments 
$query="select * from employee where Username='{$usr}' and Password='{$a}'"; 

해야하지 :

당신은 사용할 수 있나요? ($c 대신 $a ..)

+0

나는 그것을 시도했다. 나는 실수로 그것을 쓴다. 그러나 그것은 또한 작동하지 않고있다. 유감스럽게 생각한다. –

+0

(위의 @lamas가 지적했듯이, 모든 데이터를 탈출해야한다.) http://en.wikipedia.org/wiki에서 읽으십시오./SQL_injection) –

+0

당신은 $ a를 해시 할 필요가 있습니다. $ a = hash ('sha1', $ a); 위의 코드는 일반 텍스트 $ a를 데이터베이스의 암호화 된 암호와 비교합니다. –

0

귀하의 스크립트는 MySQL의 주입에 취약한 것 같습니다!

SQL 쿼리에 삽입하는 모든 값에 mysql_real_escape_string을 적용하십시오!

양식에서 검색 한 값에 여분의 공백이 있기 때문에 비교가 작동하지 않을 수도 있습니다. 시도 : 또한

$a=trim($_POST['opassword']); //old password value 
$b=trim($_POST['npassword']); //new password value 
$c=trim($_POST['cpassword']); 

:

if(isset($_POST['opassword']) && ($_POST['npassword'])) 

이 작동하지 않습니다.

isset($_POST['opassword']) && isset($_POST['npassword']) 
관련 문제