Witam. Tworzę swój skrypt rejestracji i logowania oparty na PDO i jest jeden problem.
Mam taki kod:
$pass = sha1
(md5($pass)); // Zahasuj hasło
// Sprawdź, czy użytkownik o podanym emailu i haśle isnieje w bazie danych
$SQL = "SELECT COUNT(*) FROM users WHERE email = :email AND pass = :pass";
$exists = $pdo -> prepare($SQL, array(PDO
::ATTR_CURSOR => PDO
::CURSOR_FWDONLY)); $exists -> bindValue(':email', $email, PDO::PARAM_STR);
$exists -> bindValue(':pass', $pass, PDO::PARAM_STR);
$exists -> execute();
$count = $exists -> fetch(PDO::FETCH_ASSOC);
if ($count == 0) {
// Użytkownik nie istnieje w bazie
echo '<p class="error">Użytkownik o podanym emailu i haśle nie istnieje.</p>'; }
else {
$sql = "SELECT * FROM `users` WHERE `email` = :email and `pass` = :pass and `status`=0";
$query = $pdo -> prepare($sql, array(PDO
::ATTR_CURSOR => PDO
::CURSOR_FWDONLY)); $query -> bindValue(':email', $email, PDO::PARAM_STR);
$query -> bindValue(':pass', $pass, PDO::PARAM_STR);
$query -> execute();
$RES = $query -> fetchColumn();
// Jeżeli użytkownik zarejestrował się, a nie aktywował swojego konta, to wyświetla się komunikat
if ($RES == 1) {
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>'; }
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ą.