Spykaj
31.05.2008, 15:23:43
Czemu w
zapytaniu
select * from users where login = '$login' AND pass = '$pass'
zarówno w loginie, jak i w haśle nie patrzy na wielkość liter ? Jak ustawić, żeby patrzył ? Tzn tylko w haśle ma patrzeć, bo login Spykaj, spykaj, czy sPYkaJ, to ma być to samo ;]
Shili
31.05.2008, 15:29:50
Ustaw sobie binarne kodowanie w polu z hasłem, a niebinarne przy loginie. W bazie danych oczywiście
Spykaj
31.05.2008, 15:41:23
Czyli typem pola pass ma być VARBINARY ?
A jeszcze przy okazji (nie chcę nowego topica zakładać), czy taki formularz jest poprawny ?
<form method="post">
.....
</form>
Musi koniecznie być action ? Bo adres mi sie psuje
Shili
31.05.2008, 15:50:20
Nie, każda baza danych ma własne kodowanie, każda tabela może mieć własne kodowanie i każde pole w tabeli też. Jeśli masz phpMyAdmin, albo coś w tym stylu, to wejdź w edycję pola tabeli z hasłem - masz tam metodę porównywania napisów, w przypadku utf-8_bin czy jakoś tam jest on case sensitive, czyli rozróżnia wielkość liter.
action="" powinno przekierować Cię do tej samej strony; brak action w standardzie xhtml 1.0 strict jest bodajże błędem.
Spykaj
31.05.2008, 15:56:29
No właśnie mam phpMyAdmina, i w nim tworzę wszystkie tabele i pola. Rzeczywiście jest coś takiego jak System porównań i można ustawić utf8_bin, co mnie osobiście cieszy

Dzięki, dam ci SOGa za pomoc
devnul
31.05.2008, 16:29:34
a ja tylko od siebie dodam że hasła nie powinno się trzymać w bazie jawnie. Zamiast tego powinno się tworzyć hash z hasła md5/sh1 itp.
viking
31.05.2008, 17:01:37