Witam
Napisałem taki kod strony służącej do zmiany hasła użytkownika:
<?
include("../include/sessions.inc");
include("../include/connect.php");
if (isset($_POST['do_change'])){//1 $id=$_SESSION['id'];
$login=$_SESSION['login'];
$password=$_POST['o_password'];
$a=mysql_query("SELECT*FROM tabela_users WHERE user_id='$id' AND user_name='$login' AND user_password=md5('$password')"); if ($user_exists==1){//2
$password=$r['user_password'];
$o_password=$_POST['o_password'];
if ($_POST['password1']==$_POST['password2']){//3
$n_password=$_POST['password1'];
$b=mysql_query("UPDATE tabela_users SET user_password=md5('$n_password') WHERE user_id='$id' AND user_name='$login'"); print "Pomyślnie zaktualizowano dane"; print "<script>setTimeout('document.location = \"register.php\"', 2000);</script>"; }//3
else{//4
$adres = 'http://domena.pl/user/index.php'.'?er=2';
Header('HTTP/1.1 301 Moved Permanently'); }//4
}
else{//5
$adres = 'http://domena.pl/user/index.php'.'?er=1';
Header('HTTP/1.1 301 Moved Permanently'); }//5
}//1
else{
$er=$_GET['er'];
switch($er){
case '1':
print "<b>Podałeś złe hasło</b>"; break;
case '2':
print "Nowe hasła nie są takie same"; break;}}
?>
<form method="post" action="update.php">
Aktualne hasło:
<br />
<input type="password" name="o_password" />
<br />
Nowe hasło:
<br />
<input type="password" name="password1" />
<br />
Powtórz hasło:
<br />
<input type="password" name="password2" />
<br />
<input type="submit" value="Aktualizuj" name="do_change" />
</form>
<?
}
?>
Jednak mam problem ze sprawdzaniem hasła w pierwszym sparwdzeniu, bo caly czas pokazuje mi, że wpisalem złe hasło. Jednak cały czas wpisuje to samo (dobre) haslo i nic.
To jest fragment ze strony gdzie użytkownik jest rejestrowany.
$add = "INSERT INTO tabela_users (user_name, user_password) VALUES ('$user', md5('$pass'))";
Osobiście jestem prawie pewien, że chodzi o kodowanie hasła, ale nie mam pojęcia gdzie jest błąd.
Proszę o pomoc.