Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Sprawdzanie istnienia użytkownika w logowaniu
Forum PHP.pl > Forum > PHP
Bale
Właśnie mam problem z kodem logowania. Chociaż dany użytkownik jest, to i tak bierze go jakby go nie było.

  1. <?php
  2.  
  3.  
  4. include 'config.php';
  5.  
  6.  
  7. $nick = $_POST['nick'];
  8. $haslo = $_POST['haslo'];
  9.  
  10. if (isset($_POST['nick']) && isset($_POST['haslo']) )
  11. {
  12.  
  13. if(!empty($_POST['nick']) && !empty($_POST['haslo']))
  14. {
  15. $nick = mysql_real_escape_string (trim($_POST['nick']));
  16. $haslo = sha1(md5(mysql_real_escape_string (trim($_POST['haslo']))));
  17.  
  18. if($_POST['nick'] && $_POST['haslo'])
  19. {
  20. $zapytanie = "SELECT * FROM `user` WHERE `nick` = '$nick' && `haslo` = '$haslo'";
  21. $temp = mysql_query($zapytanie) or die(mysql_error());
  22. $ile = mysql_num_rows($temp);
  23. $temp = mysql_fetch_array($temp);
  24. $nick_id = $temp['nick_ID'];
  25.  
  26. if($ile==1)
  27. {
  28. $_SESSION['nick' ] = $nick;
  29. $_SESSION['nick_ID'] = $nick_ID;
  30. echo("Zostałeś zalogowany.");
  31. print_r($_SESSION);
  32. }
  33. else
  34. echo("Podano nieprawidłowe dane. Kliknij wstecz.");
  35. }
  36. }
  37. else
  38. echo("Nie wypełniono wszystkich pól. Kliknij wstecz.");
  39. }
  40.  
  41. ?>
bemol
  1. $zapytanie = "SELECT * FROM `user` WHERE `nick` = '".$nick."' AND `haslo` = '".$haslo."'";


i nie potrzebnie drugi raz sprawdzasz, czy jest $_POST['nick'] && $_POST['haslo'].

sprawdz co printuje $nick i $haslo (i sprawdz czy to samo jest w bazie)
CuteOne
Sprawdź czy pobiera użytkownika
  1. $zapytanie = "SELECT * FROM `user` WHERE `nick` = '$nick' AND `haslo` = '$haslo'";
  2. $temp = mysql_query($zapytanie) or die(mysql_error());
  3. echo '<pre>';print_r($temp);
Bale
To mi wypisuje. Resource id #3 CO to znaczy?

Dzięki, nie wiedziałem, zę można nawet tak zobaczyć błąd.
bemol
zwróciło resource, czyli zapytanie się wykonało.
CuteOne
Mój błąd ;P
  1. $zapytanie = "SELECT * FROM `user` WHERE `nick` = '$nick' && `haslo` = '$haslo'";
  2. $temp = mysql_query($zapytanie) or die(mysql_error());
  3. $ile = mysql_num_rows($temp);
  4. echo $ile;
  5. $temp = mysql_fetch_array($temp);
  6. echo '<pre>';print_r($temp);
Bale
Teraz nic nie wyskoczyło oprócz 0 od wartości $ile. NIe znam sposobów na znalezienie błędów. Bo z klamrami chyba w porząku. ;p
CuteOne
więc masz odpowiedź - zły login lub co bardziej prawdopodobne złe hasło smile.gif
  1. $query = mysql_query("SELECT * FROM `user` WHERE `nick` = '$nick'");
  2. $row = mysql_fetch_assoc($query);
  3.  
  4. echo $haslo . ' <br>'
  5. echo $row['haslo'];


Porównaj hasła
Bale
Wybaczcie. W rejestracji miałem kodowanie tylko na sha1 bez md5.
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.