![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 249 Pomógł: 0 Dołączył: 22.12.2011 Ostrzeżenie: (10%) ![]() ![]() |
Jak poprawnie wywołać kod do logowania przy użyciu nazwy użytkownika lub emaila?
zmieniam na
Lecz wciąż nie działa przy użyciu username i nie można zalogować po nazwie użytkownika. -------------------- TERA TRYBI.pl
|
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 1 270 Pomógł: 184 Dołączył: 7.10.2012 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Moze wina jest to ze robisz tak:
Zrob tak:
Ten post edytował rad11 11.01.2015, 21:10:31 |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 249 Pomógł: 0 Dołączył: 22.12.2011 Ostrzeżenie: (10%) ![]() ![]() |
Jeśli zmienię email na username tutaj:
Wtedy będę mógł się zalogować po nazwie użytkownika więc tutaj muszę dodać jakis parametr który będzie wybierał pomiędzy username lub mail. -------------------- TERA TRYBI.pl
|
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 1 270 Pomógł: 184 Dołączył: 7.10.2012 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
to takie zapytanie zrob ja napisalem przykladowo to zapytanie chodzilo mi o to ze execute nie robisz pierw.
|
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 249 Pomógł: 0 Dołączył: 22.12.2011 Ostrzeżenie: (10%) ![]() ![]() |
Nie rozumiemy się chyba. Ja chce przerobić zapytanie do bazy danych tak aby użytkownik podczas logowania mógł podać username lub email aby sie zalogować.
-------------------- TERA TRYBI.pl
|
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarejestrowani Postów: 1 045 Pomógł: 141 Dołączył: 19.09.2006 Skąd: B-tów Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#7
|
|
Grupa: Nieautoryzowani Postów: 50 Pomógł: 2 Dołączył: 28.05.2013 Ostrzeżenie: (0%) ![]() ![]() |
Pobieranie hasła z bazy jest raczej niepotrzebne, przecież tego hasła i tak nie będziesz do niczego potrzebował.
Przed wykonaniem zapytania powinieneś na poziomie PHP dokonać walidacji maila. Jeśli ma prawidłową formę wysyłasz zapytanie z warunkiem "WHERE email = '{$login}'", a jeśli nie "WHERE username = '{$login}'" |
|
|
![]()
Post
#8
|
|
![]() Grupa: Zarejestrowani Postów: 3 034 Pomógł: 366 Dołączył: 24.05.2012 Ostrzeżenie: (0%) ![]() ![]() |
Cytat Pobieranie hasła z bazy jest raczej niepotrzebne, przecież tego hasła i tak nie będziesz do niczego potrzebował. Przy logowaniu? raczej powinien je sprawdzić czy sie zgadza z tym co podał ? ![]() |
|
|
![]()
Post
#9
|
|
![]() Grupa: Zarejestrowani Postów: 8 068 Pomógł: 1414 Dołączył: 26.10.2005 Ostrzeżenie: (0%) ![]() ![]() |
Tak, ale można to sprawdzić w zapytaniu
![]() |
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 1 890 Pomógł: 339 Dołączył: 14.12.2006 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#11
|
|
![]() Grupa: Moderatorzy Postów: 6 072 Pomógł: 861 Dołączył: 10.12.2003 Skąd: Dąbrowa Górnicza ![]() |
@Pyton_000: Ale w takim przypadku zamykasz sobie drogę na informację zwrotną dlaczego użytkownik się nie zalogował. Bo wpisał niepoprawne hasło? Bo jego konto jest nieaktywne? Bo ma jakąś inną flagę ustawioną? Ja też wyciągam dane na podstawie loginu, a potem w PHP porównuję pozostałe parametry.
@MESSIAH: Co do pytania to proponuję dynamicznie podmieniać kolumnę na podstawie tego, co przesłał użytkownik. Jeśli jest to prawidłowy adres e-mail (można skorzystać z filter_var z flagą FILTER_VALIDATE_EMAIL) - użyj kolumny email, jeśli nie - username. Nie bawiłbym się w żadne ORy bo to skutecznie uniemożliwi użycie indeksu. W zaproponowanym przeze mnie rozwiązaniu jest 1 minus - przypadek, gdy nazwa użytkownika jest adresem e-mail, a podany adres e-mail jest inny ![]() |
|
|
![]()
Post
#12
|
|
![]() Grupa: Zarejestrowani Postów: 8 068 Pomógł: 1414 Dołączył: 26.10.2005 Ostrzeżenie: (0%) ![]() ![]() |
Dlaczego? Generuję sobie hash z hasła i sprawdzam czy taki hash istnieje w BD łącznie z adresem email lub userem
czyli Kod WHERE pass = 'hash' AND (email = 'email' OR username = 'username); Nie widzę w tym niczego strasznego. [Edited] @up tak to prawda, ale nie zawsze potrzebuję takiej informacji. To już zależy od kontekstu gdzie i dlaczego tego używam. Napisałem tylko że tak tez można ![]() Ten post edytował Pyton_000 12.01.2015, 10:21:49 |
|
|
![]()
Post
#13
|
|
![]() Grupa: Moderatorzy Postów: 6 072 Pomógł: 861 Dołączył: 10.12.2003 Skąd: Dąbrowa Górnicza ![]() |
|
|
|
![]()
Post
#14
|
|
Grupa: Zarejestrowani Postów: 1 890 Pomógł: 339 Dołączył: 14.12.2006 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#15
|
|
![]() Grupa: Moderatorzy Postów: 6 072 Pomógł: 861 Dołączył: 10.12.2003 Skąd: Dąbrowa Górnicza ![]() |
@sowiq:
Chyba, że sól jest wspólna dla wszystkich użytkowników ![]() |
|
|
![]()
Post
#16
|
|
Grupa: Zarejestrowani Postów: 1 890 Pomógł: 339 Dołączył: 14.12.2006 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Wspólna sól = brak soli.
|
|
|
![]()
Post
#17
|
|
![]() Grupa: Zarejestrowani Postów: 8 068 Pomógł: 1414 Dołączył: 26.10.2005 Ostrzeżenie: (0%) ![]() ![]() |
@sowiq tak czysto informacyjnie używam Crypt z możliwie najmocniejszym algorytmem dost. na serwerze toteż uważam solenie za zbędne (ew. sól ogólna jak phpion powiedział) i tak, nie jest to ani sha1 ani md5
![]() |
|
|
![]()
Post
#18
|
|
Grupa: Zarejestrowani Postów: 1 890 Pomógł: 339 Dołączył: 14.12.2006 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Bardzo dobrze, że używasz crypt.
Jeśli chodzi o sól, to trzeba sobie zadać pytanie po co w ogóle jest ona stosowana. Jedną z pierwszych odpowiedzi (przynajmniej moich) jest: żeby dwa takie same hasła miały w bazie różne hashe. Zarówno w przypadku braku soli jak i w przypadku soli wspólnej dla całej bazy, takie same hasła będą miały takie same hashe. W związku z tym, z całą odpowiedzialnością podtrzymuję co napisałem wcześniej: wspólna sól = brak soli. Ten post edytował sowiq 12.01.2015, 10:55:23 |
|
|
![]()
Post
#19
|
|
![]() Grupa: Zarejestrowani Postów: 8 068 Pomógł: 1414 Dołączył: 26.10.2005 Ostrzeżenie: (0%) ![]() ![]() |
Ten argument do mnie trafia bo jest racjonalny i poprawny politycznie
![]() |
|
|
![]()
Post
#20
|
|
![]() Grupa: Zarejestrowani Postów: 3 034 Pomógł: 366 Dołączył: 24.05.2012 Ostrzeżenie: (0%) ![]() ![]() |
Pyton_000 zgadzam się można, ale ten oto programista robił to sposobem opisanym przez phpion, a ja odnosiłem się do tego przypadku, bo uwzględniając podane przez innych argumenty, też wydaje mi się on bardziej sensowny, bo skoro już generujemy funkcje skrótu, to ma być jakieś utrudnienie/zabezpieczenie a jak ma być to zwykły hash , to mając takie możliwości jak mamy teraz, jest on zbliżony w dużej mierze do efektu jakby to było zapisane plaintextem(no może trochę przesadziłem, bo trzeba mieć troche wiedzy), bo wygenerowanie kolizji w takim wypadku jest na pewno prawdopodobne. A sposób zidek nie podawał informacji takiej jak zapropoowałeś co wprowadzało użytkownika w błąd, stąd tez moja uwaga.
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 19.08.2025 - 05:26 |