Pomoc - Szukaj - U¿ytkownicy - Kalendarz
Pe³na wersja: [MySQL][PHP]zmiana has³a
Forum PHP.pl > Forum > Przedszkole
cryptonim
Witam mam k³opot z kodem do zmiany has³a przez u¿ytkownika i niemoge do tego dojsc problem w tym ze ciagle wyswietla mi mie info "stare has³o niepasuje"
nawet jak wysle pusty formularz smile.gif niewiem w czym tkwi b³ad :

  1. <?php
  2.  
  3. $user = $_SESSION['first_name'];
  4.  
  5. if ($user)
  6.  
  7. {
  8. //user is logged in
  9.  
  10. if ($_POST['submit'])
  11. {
  12. //check fields
  13.  
  14. $oldpassword = md5($_POST['oldpassword']);
  15. $newpassword = md5($_POST['newpassword']);
  16. $repeatnewpassword = md5($_POST['repeatnewpassword']);
  17.  
  18. //check password against db
  19. //connect db
  20. $connect = mysql_connect("********","******","******") or die("Niemoge sie polaczyc z baza danych!!!");
  21.  
  22. mysql_select_db("*******") or die("Niemoge wybrac bazy danych !!!");
  23.  
  24. $queryget = mysql_query("SELECT password FROM users WHERE username='$user'") or die("Query nie dzia³a !!!");
  25.  
  26. $row = mysql_fetch_assoc($queryget);
  27.  
  28. $oldpassworddb = $row['password'];
  29.  
  30. //check password
  31. if ($oldpassword==$oldpassworddb)
  32. {
  33. //check to new password
  34. if ($repeatnewpassword==$newpassword)
  35. {
  36. //success
  37. //change password in db
  38. $querychange = mysql_query("UPDATE users SET password='$newpassword' WHERE username='$user'");
  39.  
  40.  
  41. die("HAS£O ZOSTA£O ZMIENIONE.<a href='login_form.html'>Przejdz</a>do strony logowania");
  42.  
  43. }
  44. else
  45. die("Nowe has³o niepasuja");
  46.  
  47. }
  48. else
  49. die("Stare has³o niepasuje !!!");
  50.  
  51. }
  52. else
  53. {
  54.  
  55. <form action='changepassword.php' method='POST'>
  56. Old password: <input type='text' name='oldpassword'><br/>
  57. New password: <input type='password' name='newpassword'><br/>
  58. Repeat new password: <input type='password' name='repeatnewpassword'><br/>
  59. <input type='submit' name='submit' value='change password'>
  60. </form>";
  61. }
  62. }
  63. else
  64. echo("MUSISZ BYC ZALOGOWANY!!!!.<br><a href='login_form.html'>Przejdz</a> do strony logowania");
  65.  
  66.  
  67.  
  68. ?>


dzieki
kalmaceta
zamiast
  1. die("Stare has³o niepasuje !!!");

daj takie cos to zobaczysz gdzie b³±d
  1. echo $oldpassword.'<br>';
  2. echo $oldpassworddb;
  3. die("Stare has³o niepasuje !!!");
cryptonim
daje mi has³o hashowane i dalej to samo :

202cb962ac59075b964b07152d234b70
Stare has³o niepasuje exclamation.gif!

nie wiem sam
kalmaceta
pomy¶lmy, a powinno byæ? mamy dwa echo, dwa razy powinno pojawiæ siê has³o hashowane
kadlub
  1.  
  2. <?php
  3.  
  4. $user = "pawel";
  5.  
  6. if ($user)
  7.  
  8. {
  9. //user is logged in
  10.  
  11. if ($_POST['submit'])
  12. {
  13. //check fields
  14.  
  15. $oldpassword=md5($_POST['oldpassword']);
  16. $newpassword=md5($_POST['newpassword']);
  17. $repeatnewpassword=md5($_POST['repeatnewpassword']);
  18.  
  19. //check password against db
  20. //connect db
  21. $connect = mysql_connect("localhost","root","") or die("Niemoge sie polaczyc z baza danych!!!");
  22.  
  23. mysql_select_db("test") or die("Niemoge wybrac bazy danych !!!");
  24.  
  25. $queryget = mysql_query("SELECT password FROM pobrane WHERE username='$user'") or die("Query nie dzia³a !!!");
  26.  
  27. $row = mysql_fetch_array($queryget);
  28.  
  29. $oldpassworddb = $row['password'];
  30.  
  31. //check password
  32. if ($oldpassword==$oldpassworddb)
  33. {
  34. //check to new password
  35. if ($repeatnewpassword==$newpassword)
  36. {
  37. //success
  38. //change password in db
  39. $querychange = mysql_query("UPDATE pobrane SET password='$newpassword' WHERE username='$user'");
  40.  
  41.  
  42. echo("HAS£O ZOSTA£O ZMIENIONE.<a href='login_form.html'>Przejdz</a>do strony logowania");
  43.  
  44. }
  45. else{
  46. echo("Nowe has³o niepasuja");
  47. }
  48. }
  49. else {
  50. echo("Stare has³o niepasuje !!!");
  51. }
  52. }
  53. else
  54. {
  55.  
  56. <form action='exp.php' method='POST'>
  57. Old password: <input type='text' name='oldpassword'><br/>
  58. New password: <input type='password' name='newpassword'><br/>
  59. Repeat new password: <input type='password' name='repeatnewpassword'><br/>
  60. <input type='submit' name='submit' value='change password'>
  61. </form>";
  62. }
  63. }
  64. else{
  65. echo("MUSISZ BYC ZALOGOWANY!!!!.<br><a href='login_form.html'>Przejdz</a> do strony logowania");
  66.  
  67. }
  68.  
  69. ?>

popatrzy³em na twój kod mi te¿ na pocz±tku nie chcia³ dzia³aæ robi³em echa has³a z bazy i has³a podanego przez u¿ytkownika mia³e¶ racje s± takie same wiêc skasowa³em md5 i zadzia³a³o wstaw ten kod tylko pozmieniaj nazwy przy po³±czeniu z baz± danych i tabele w zapytaniach i wstaw sessie do $user i zobacz czy ci zadzia³a
cryptonim
No niestety u mnie odhashowanie has³a niepomog³o teraz ten kod tak wyglada :

  1.  
  2.  
  3. <?php
  4.  
  5. $user = $_SESSION['first_name'];
  6.  
  7. if ($user)
  8.  
  9. {
  10. //user is logged in
  11.  
  12. if ($_POST['submit'])
  13. {
  14. //check fields
  15.  
  16. $oldpassword = $_POST['oldpassword'];
  17. $newpassword = $_POST['newpassword'];
  18. $repeatnewpassword = $_POST['repeatnewpassword'];
  19.  
  20. //check password against db
  21. //connect db
  22. $connect = mysql_connect("*****","****","******") or die("Niemoge sie polaczyc z baza danych!!!");
  23.  
  24. mysql_select_db("******") or die("Niemoge wybrac bazy danych !!!");
  25.  
  26. $queryget = mysql_query("SELECT password FROM users WHERE username='$user'") or die("Query nie dzia³a !!!");
  27.  
  28. $row = mysql_fetch_array($queryget);
  29.  
  30. $oldpassworddb = $row['password'];
  31.  
  32. //check password
  33. if ($oldpassword==$oldpassworddb)
  34. {
  35. //check to new password
  36. if ($repeatnewpassword==$newpassword)
  37. {
  38. //success
  39. //change password in db
  40. $querychange = mysql_query("UPDATE users SET password='$newpassword' WHERE username='$user'");
  41.  
  42.  
  43. echo("HAS£O ZOSTA£O ZMIENIONE.<a href='login_form.html'>Przejdz</a>do strony logowania");
  44.  
  45. }
  46. else{
  47. echo("Nowe has³o niepasuja");
  48. }
  49. }
  50. else {
  51. echo("Stare has³o niepasuje !!!");
  52. }
  53. }
  54. else
  55. {
  56.  
  57. <form action='changepassword.php' method='POST'>
  58. Old password: <input type='text' name='oldpassword'><br/>
  59. New password: <input type='password' name='newpassword'><br/>
  60. Repeat new password: <input type='password' name='repeatnewpassword'><br/>
  61. <input type='submit' name='submit' value='change password'>
  62. </form>";
  63. }
  64. }
  65. else{
  66. echo("MUSISZ BYC ZALOGOWANY!!!!.<br><a href='login_form.html'>Przejdz</a> do strony logowania");
  67.  
  68. }
  69.  
  70. ?>
  71.  



ale chyba wiem co jest gdy daje echa to podaje niepodaje mi hasla z bazy danych, wiec reasumujac tutaj jest b³ad... chyba a i jeszcze jedno wywy³am pusty formularz to wywala mi : HAS£O ZOSTA£O ZMIENIONE hehehehehe bez sensu masakra jakas hehe bede dalej prubowac jak nic niewymysle to zajme sie malarstwem chyba !
emajl22
  1. $querychange = mysql_query("UPDATE users SET password='$newpassword' WHERE username='$user'");

na:
  1. mysql_query("UPDATE users SET password='$newpassword' WHERE username='$user'");


a:
  1. $oldpassworddb = $row['password'];

na:
  1. $oldpassworddb = $row['password'];
  2. $oldpassworddb = md5($oldpassworddb);
cryptonim
Ok da³em rade juz dzia³a ale to nieistotne wazne ze juz wiem dlaczego mi nie dzia³a³o !! wiec sam sobie narobi³em k³opotu zamiast "witac" uzytkownika po zalogowaniu jego nickiem to napisa³em w kodzie jego imie czyli first_name wiec nie mog³ mi kod zmiany has³a dzia³ac skoro napisa³em username = $user logiczne dlatego zmieni³em
  1. $queryget = mysql_query("SELECT password FROM users WHERE first_name='$first_name'")
i w tabeli zapytania doda³em hashowanie has³a i smiga jak ta lala :) a to ca³y kod po zmianie moze sie komu przyda :

  1.  
  2.  
  3. <?php
  4.  
  5. $first_name = $_SESSION['first_name'];
  6.  
  7. if ($first_name)
  8.  
  9. {
  10. //user is logged in
  11.  
  12. if ($_POST['submit'])
  13. {
  14. //check fields
  15.  
  16. $oldpassword = md5($_POST['oldpassword']);
  17. $newpassword = md5($_POST['newpassword']);
  18. $repeatnewpassword = md5($_POST['repeatnewpassword']);
  19.  
  20. //check password against db
  21. //connect db
  22. $connect = mysql_connect("*****","****","****") or die("Niemoge sie polaczyc z baza danych!!!");
  23.  
  24. mysql_select_db("****") or die("Niemoge wybrac bazy danych !!!");
  25.  
  26. $queryget = mysql_query("SELECT password FROM users WHERE first_name='$first_name'") or die("Query nie dzia³a !!!");
  27.  
  28. $row = mysql_fetch_array($queryget);
  29.  
  30. $oldpassworddb = $row['password'];
  31.  
  32. //check password
  33. if ($oldpassword==$oldpassworddb)
  34. {
  35. //check to new password
  36. if ($newpassword==$repeatnewpassword)
  37. {
  38. //success
  39. //change password in db
  40. $querychange = mysql_query("UPDATE users SET password='$newpassword' WHERE first_name='$first_name'");
  41.  
  42.  
  43. echo("HAS£O ZOSTA£O ZMIENIONE.<a href='login_form.html'>Przejdz</a>do strony logowania");
  44.  
  45. }
  46. else{
  47. echo("Nowe has³o niepasuja");
  48. }
  49. }
  50. else {
  51.  
  52. die("Stare has³o niepasuje !!!");
  53. }
  54. }
  55. else
  56. {
  57.  
  58. <form action='changepassword.php' method='POST'>
  59. Old password: <input type='text' name='oldpassword'><br/>
  60. New password: <input type='password' name='newpassword'><br/>
  61. Repeat new password: <input type='password' name='repeatnewpassword'><br/>
  62. <input type='submit' name='submit' value='change password'>
  63. </form>";
  64. }
  65. }
  66. else{
  67. echo("MUSISZ BYC ZALOGOWANY!!!!.<br><a href='login_form.html'>Przejdz</a> do strony logowania");
  68.  
  69. }
  70.  
  71. ?>
  72.  


w kazdym razie dziekuje za pomoc!
emajl22
no tak, ale `first_name` raczej nie jest unikalne, wiêc ja bym jeszcze pomy¶la³...
To jest wersja lo-fi g³ównej zawarto¶ci. Aby zobaczyæ pe³n± wersjê z wiêksz± zawarto¶ci±, obrazkami i formatowaniem proszê kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.