Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Problemy z PDO
Forum PHP.pl > Forum > PHP
GandiFly
Witam. Tworzę swój skrypt rejestracji i logowania oparty na PDO i jest jeden problem.
Mam taki kod:

  1. $pass = sha1(md5($pass)); // Zahasuj hasło
  2.  
  3. // Sprawdź, czy użytkownik o podanym emailu i haśle isnieje w bazie danych
  4. $SQL = "SELECT COUNT(*) FROM users WHERE email = :email AND pass = :pass";
  5. $exists = $pdo -> prepare($SQL, array(PDO::ATTR_CURSOR => PDO::CURSOR_FWDONLY));
  6. $exists -> bindValue(':email', $email, PDO::PARAM_STR);
  7. $exists -> bindValue(':pass', $pass, PDO::PARAM_STR);
  8. $exists -> execute();
  9. $count = $exists -> fetch(PDO::FETCH_ASSOC);
  10. if ($count == 0) {
  11. // Użytkownik nie istnieje w bazie
  12. echo '<p class="error">Użytkownik o podanym emailu i haśle nie istnieje.</p>';
  13. }
  14.  
  15. else {
  16. $sql = "SELECT * FROM `users` WHERE `email` = :email and `pass` = :pass and `status`=0";
  17. $query = $pdo -> prepare($sql, array(PDO::ATTR_CURSOR => PDO::CURSOR_FWDONLY));
  18. $query -> bindValue(':email', $email, PDO::PARAM_STR);
  19. $query -> bindValue(':pass', $pass, PDO::PARAM_STR);
  20. $query -> execute();
  21. $RES = $query -> fetchColumn();
  22. // Jeżeli użytkownik zarejestrował się, a nie aktywował swojego konta, to wyświetla się komunikat
  23. if ($RES == 1) {
  24. echo '<p>Nie aktywowałeś jeszcze swojego konta. Aby to zrobić, wejdź na swojego maila, a następnie znajdź wiadmość z linkiem aktywacyjnym i aktywuj swoje konto</p>';
  25. }


Niestety ani nie sprawdza czy taki użytkownik istnieje (można się zalogować byle jakimi passami) ani nie sprawdza czy konto zostało aktywowane. Nie wiem w czym tkwi błąd. Żadne błędy nie wywalają.
maly_swd
if ($count == 0) {
na
if (count($count) == 0) {
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.