ďťż
Podstrony
|
telcocafeJakiego zapytania do bazy danych MySQL mam użyć przy formularzu logowania? Wydaje mi się, że SELECT, ale cały czas coś nie tak mi wychodzi.Samo zapytanie logowania ci nie da. Pobierasz z bazy danych rekord użytkownika o podanym haszu podanego hasła i o podanym loginie. Jeżeli rekord jest - dane poprawne i można zalogować. SELECT ID, login, pass, inne_pola FROM users WHERE login = :loginPotem sprawdź, czy hasło pobrane z bazy danych jest identyczne (===) jak zakodowane hasło przesłane w formularzu.if(strtolower($u['login']) === strtolower($login) && $u['pass'] === $md5)Zakładam, że zmienne $login i $md5 wcześniej definiujesz na podstawie danych z $_POST i odpowiednio zabezpieczasz. W CMS-ie robię to tak: login.php Użytkownik Ferrari edytował ten post 30 maj 2009, 20:10 <ciach>zakodowane hasło<ciach> To ja mam kodować hasło? Ten formularz i tak będzie na serwerze HTTPS. <ciach>odpowiednio zabezpieczasz.<ciach> W jakim sensie? Użytkownik Kamil1000 edytował ten post 31 maj 2009, 13:28 W bazie nie przechowujesz oryginału hasła a jedynie hasz md5, czy sha1. Porównujesz hasz podanego przez usera hasła z haszem zapisanym w bazie. Do tego w zapytaniu wstawiając dane z formularza - czy to login, czy hasło należy zadbać o zabezpieczenie danych przed próbą SQL Injection (np. mysql_real_escape_string). No OK, ale ja tak zrobić nie mogę, ponieważ z tej samej bazy będzie korzystał serwer gry Tibia (nie można ustawić w nim sprawdzania hashów), po prostu muszę zrobić stronę dla tego serwera z możliwością rejestracji konta i zarządzania postaciami na serwerze. Strona osoby trzeciej wymagająca poufnych danych do konta ? Podejrzewam że w regulaminie mają to uregulowane ;) Jak nie możesz trzymać haszów to trzymasz same hasła. Algorytm ogólnie się nie zmienia. |
|||
Sitedesign by AltusUmbrae. |