Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP]Sprawdzanie hasła (MD5)
Forum PHP.pl > Forum > Przedszkole
SSB
Witam,
Piszę grę internetową i mam problem ze sprawdzaniem hasła w MD5.
Jakoś tak sobie wymyśliłem że wszystko muszę mieć zakodowane, żeby przypadkiem mi nie odbiło i żebym sobie haseł nie sprawdzał, nawet przez przypadek bo w bazie byłyby hasła niezakodowane to nietrudno sprawdzić hasło.

No więc oto mój plik z logowaniem
  1. <?php
  2.  
  3. function sql_query($query) {
  4. $query = mysql_query($query) or die(mysql_error());
  5. return $query;
  6. }
  7.  
  8. function sql_fetcharray($query) {
  9. $result = mysql_fetch_array($query);
  10. if (!$result) {
  11. return false;
  12. } else {
  13. return $result;
  14. }
  15. }
  16. $nicknick = '"'.$_POST['login'].'"';
  17. $query = "select * from users where login=".$nicknick;
  18. $wynik=sql_query($query);
  19. if (mysql_num_rows($wynik) > 0)
  20. {
  21. $wiersz=sql_fetcharray($wynik);
  22. }
  23.  
  24. $gets = explode("?", $_SERVER['REQUEST_URI']);
  25. if(!empty($gets[1])) {
  26. $gets = "?" . $gets[1];
  27. } else {
  28. $gets = "";
  29. }
  30. if(isset($_POST['submit']) && $_POST['submit'] == "Zaloguj!") {
  31. $match = mysql_query("SELECT id, activatiecode, vakantie FROM users WHERE login = '" . $_POST['login'] . "' AND pass = '" . md5($_POST['pass']) . "'");
  32. if(md5($_POST['pass']) == md5($wiersz['pass'])) {
  33. //if(mysql_num_rows($match) > 0) {
  34. $user = mysql_fetch_assoc($match);
  35. if($user['activatiecode'] == 0 && $user['vakantie'] <= 0) {
  36. mysql_query("UPDATE users SET online = '" . get_global_date("Y-m-d H:i:s") . "' WHERE id = '" . $user['id'] . "'");
  37. $_SESSION['id'] = $user['id'];
  38. echo'<script type="text/javascript">window.location.href = "index.php' . $gets . '";</script>';
  39. }
  40. } else {
  41. $match = mysql_query("SELECT id, activatiecode, vakantie FROM users WHERE login = '" . $_POST['login'] . "' AND pass_v2 = '" . md5($_POST['pass']) . "'");
  42. if(mysql_num_rows($match) > 0) {
  43. mysql_query("UPDATE users SET pass = '" . $_POST['pass'] . "', pass_v2 = '' WHERE login = '" . $_POST['login'] . "'");
  44. $user = mysql_fetch_assoc($match);
  45. if($user['activatiecode'] == 0 && $user['vakantie'] <= 0) {
  46. mysql_query("UPDATE users SET online = '" . get_global_date("Y-m-d H:i:s") . "' WHERE id = '" . $user['id'] . "'");
  47. $_SESSION['id'] = $user['id'];
  48. echo'<script type="text/javascript">window.location.href = "index.php' . $gets . '";</script>';
  49. }
  50. }
  51. }
  52. if(!isset($user['activatiecode'])) {
  53. $fout = "<div class=\"dark\"><font color=\"red\" style=\"font-weight: bold\">Nick lub Hasło są nieprawidłowe! </font></div><br />";
  54. } elseif($user['vakantie'] > 0) {
  55. $fout = "<div class=\"dark\"><font color=\"red\" style=\"font-weight: bold\">Twoje konto jest już w pełni Aktywne " . $user['vakantie'] . " </font></div><br />";
  56. } elseif($user['activatiecode'] != 0) {
  57. $fout = "<div class=\"dark\"><font color=\"red\" style=\"font-weight: bold\">Twoje konto nie jest aktywne</font></div><br />";
  58. }
  59. }
  60. ?>


Od czego może to być? Myślę, że wszystko jest OK. Chyba łączy się z bazą. Wywala mi po prostu Nick lub hasło są nieprawidłowe!
everth
Przed linią 33:
  1. var_dump($_POST['pass'].' -- '.$wiersz['pass']);
  2. var_dump(md5($_POST['pass']).' -- '.md5($wiersz['pass']);

Tylko podpowiadam ci jak dojść do tego gdzie jest błąd - skryptu za diabła nie idzie zrozumieć.
SSB
OK, zapomniałem że mogłem zrobić gdzieindziej błąd...

Powinienem mieć tak o.
  1. //if(md5($_POST['pass']) == md5($wiersz['pass'])) {
  2. if(mysql_num_rows($match) > 0) {


Za chęci proszę punkt Pomógł.
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.