Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP] logowanie PDO
!*!
post
Post #1





Grupa: Zarejestrowani
Postów: 4 298
Pomógł: 447
Dołączył: 16.11.2006

Ostrzeżenie: (0%)
-----


Jak powinno wyglądać logowanie oparte o PDO?
  1. try
  2. {
  3. $pdo = new PDO(''.DB_TYPE.':host='.DB_HOST.';dbname='.DB_NAME.'', ''.DB_LOGIN.'', ''.DB_PASS.'', array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8"));
  4. $pdo -> setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
  5. $stmt = $pdo -> prepare('SELECT login, pass FROM users WHERE login=:login AND pass=:password LIMIT 1');
  6. $stmt -> bindValue(':login', $_POST['login'], PDO::PARAM_STR);
  7. $stmt -> bindValue(':password', $_POST['password'], PDO::PARAM_STR);
  8. $stmt -> execute();
  9.  
  10. $user=$stmt-> fetch();
  11. $stmt -> closeCursor();
  12. //print_r($user);
  13. if(!$user['login'] && !$user['pass'] || $user['login'] != $_POST['login'] && $user['pass'] != $_POST['password']){echo 'nie działa';}else{echo 'login i hasło się zgadzają';}
  14.  
  15. }
  16. catch(PDOException $e)
  17. {
  18. echo 'Błąd połączenia: ' . $e->getMessage();
  19. }


Napisałem coś takiego, jednak niejestem pewien co do sprawdzenia czy login i hasło istnieją, a jeśli tak to czy są takie same jak te podane przez POST... i mam problem z wielkością liter, obecnie jeśli w bazie mam login "admin" i hasło "test", to po wysłaniu danych "Admin", "Test" zostane zalogowany...
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Fifi209
post
Post #2





Grupa: Zarejestrowani
Postów: 4 655
Pomógł: 556
Dołączył: 17.03.2009
Skąd: Katowice

Ostrzeżenie: (0%)
-----


kiler a nie przypadkiem funkcja hashująca + sól ?;]
Go to the top of the page
+Quote Post
ViX
post
Post #3





Grupa: Zarejestrowani
Postów: 114
Pomógł: 9
Dołączył: 19.11.2007
Skąd: Kraków

Ostrzeżenie: (0%)
-----


Cytat(fifi209 @ 31.01.2011, 08:07:23 ) *
kiler a nie przypadkiem funkcja hashująca + sól ?;]


Osobiście stosuję podwójne hashowanie z soleniem, na jednym z kursów polecali takie rozwiązanie więc używam go po dziś dzień.

  1. $hash = md5('i_like_salt'.sha256($password.$register_time).'very_long_salt');
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 17.10.2025 - 08:58