![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 55 Pomógł: 0 Dołączył: 16.03.2012 Skąd: Austria Ostrzeżenie: (0%) ![]() ![]() |
Witam, napisałem tak na szybko skrypt rejestracji na stronę. Jednak nie wiem czemu instrukcja wykonuje się nie tak jak chcę ;/
Wszystkie pola wypełniam zgodnie z kryteriami z preg_match a i tak wyskakuje mi komunikat z else'a ;/// Tutaj formularz w html:
A tutaj skrypt rejestracji:
Z góry dziękuję za pomoc (IMG:style_emoticons/default/smile.gif) Ten post edytował porywacz 9.04.2012, 16:57:25 |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 2 707 Pomógł: 290 Dołączył: 16.12.2008 Skąd: Śląsk Ostrzeżenie: (0%) ![]() ![]() |
No a przetestowałeś po kolei każdy z "preg"?
Przez który nie przechodzi? |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 55 Pomógł: 0 Dołączył: 16.03.2012 Skąd: Austria Ostrzeżenie: (0%) ![]() ![]() |
Przetestowałem usuwając po jednym aż nie zostało nic z tych preg i działało (IMG:style_emoticons/default/sad.gif) Więc to na pewno przez preg ale nie wiem dokładnie co zrobiłem źle ;/
|
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 2 707 Pomógł: 290 Dołączył: 16.12.2008 Skąd: Śląsk Ostrzeżenie: (0%) ![]() ![]() |
To nie usuwaj wszystkie tylko po jednym...
No chyba, że wszystkie są złe... |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 55 Pomógł: 0 Dołączył: 16.03.2012 Skąd: Austria Ostrzeżenie: (0%) ![]() ![]() |
Ok, sprawdziłem i wyszło na to, że nie przechodzi przez preg_match, który sprawdza hasło ;d A wpisuję na przykład maslomaslo1 ; d
|
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 2 707 Pomógł: 290 Dołączył: 16.12.2008 Skąd: Śląsk Ostrzeżenie: (0%) ![]() ![]() |
Chociaż nie pamiętam akurat co robią te wykrzykniki (myślałem, że to przez to) to i tak działa.
http://www.functions-online.com/preg_match.html Druga sprawa to czemu ograniczasz znaki, które można użyć w haśle? Jedyne co jest słuszne to sprawdzenie długości hasła (żeby nie było zbyt krótkie). Druga sprawa hasła się nie zapisuje w jawnej postaci (to nie Allegro) tylko się tworzy hash (md5 i sha1 z tych takich podstawowych). |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 55 Pomógł: 0 Dołączył: 16.03.2012 Skąd: Austria Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 4 298 Pomógł: 447 Dołączył: 16.11.2006 Ostrzeżenie: (0%) ![]() ![]() |
Trudno żeby działało, skoro generujesz md5 a sprawdzasz czy ma 14 znaków. Poza tym źle się do tego zabrałeś. Nie sprawdzasz czy formularz został wysłany, skoro używasz md5 to sprawdzanie hasła jest zbędne, no i nie sądzę że używanie pregów do sprawdzania długości ciągu jest dobre. Nie sprawdzasz też czy pola istnieją oraz jakiego są typu. I nie przepuści Ci wszytkich adresów email, chociaż są poprawne.
Ten post edytował !*! 9.04.2012, 17:26:21 |
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 55 Pomógł: 0 Dołączył: 16.03.2012 Skąd: Austria Ostrzeżenie: (0%) ![]() ![]() |
Tak lepiej? (IMG:style_emoticons/default/biggrin.gif) Skoro nie bardzo da się to zrobić pregami to może coś zasugerujecie? (IMG:style_emoticons/default/biggrin.gif) |
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 4 298 Pomógł: 447 Dołączył: 16.11.2006 Ostrzeżenie: (0%) ![]() ![]() |
Nie, bo nie sprawdziłeś czy formularz został wysłany. Zlicz znaki np strlen, haszuj hasło md5/sha1 ale nie sprawdzaj ile ma znaków bo zawsze będzie mieć tyle samo 32(md5) lub 40(sha1). Popraw walidację adresu email, bo co z tymi które pochodzą z subdomen? cokolwiek.cos@cos.zxc.pl
|
|
|
![]()
Post
#11
|
|
Grupa: Zarejestrowani Postów: 55 Pomógł: 0 Dołączył: 16.03.2012 Skąd: Austria Ostrzeżenie: (0%) ![]() ![]() |
A jak sprawdzić czy formularz został wysłany? Myślałem, że sprawdzenie, czy istnieją dane pola w tablicy post jest jednoznaczne ze sprawdzeniem istnienia wysłanego formularza : O
O już działa wszystko. !*!, dziękuję, że mi to wyjaśniłeś (IMG:style_emoticons/default/biggrin.gif) Zapomniałem, że shashowałem hasło przed sprawdzeniem preg_match (IMG:style_emoticons/default/haha.gif) Wystarczyło przesunąć $password = md5($password) na koniec skryptu przed wprowadzeniem danych do bazy (IMG:style_emoticons/default/biggrin.gif) Ten post edytował porywacz 9.04.2012, 17:37:56 |
|
|
![]()
Post
#12
|
|
Grupa: Zarejestrowani Postów: 4 298 Pomógł: 447 Dołączył: 16.11.2006 Ostrzeżenie: (0%) ![]() ![]() |
Po co Ty sprawdzasz te hasło przez pregi? Wywal to,bo skoro je haszujesz, to i tak ma tylko [a-z0-9] pregi nie są od liczenia ilości znaków, a !@#$%^&*( są wręcz wskazane w haśle. Formularz sprawdzasz przez $_POST['tu_nazwa_inputa_zformularza_ktory_wysyla'];
|
|
|
![]()
Post
#13
|
|
Grupa: Zarejestrowani Postów: 55 Pomógł: 0 Dołączył: 16.03.2012 Skąd: Austria Ostrzeżenie: (0%) ![]() ![]() |
Ehh nie zrozumiałeś ostatniego posta ;D Teraz te pregi nie sprawdzają zhashowanego hasła tylko te hasło, które zostało oryginalnie wprowadzone do inputa. Ale skoro to nie jest dobre rozwiązanie to jak sprawdzić ilość znaków w prawdziwym haśle (jeszcze nie zhashowanym) ?
|
|
|
![]()
Post
#14
|
|
Grupa: Zarejestrowani Postów: 4 298 Pomógł: 447 Dołączył: 16.11.2006 Ostrzeżenie: (0%) ![]() ![]() |
Już Ci odpowiedziałem na to pytanie wyżej.
|
|
|
![]()
Post
#15
|
|
Grupa: Zarejestrowani Postów: 55 Pomógł: 0 Dołączył: 16.03.2012 Skąd: Austria Ostrzeżenie: (0%) ![]() ![]() |
W takim razie coś takiego "ujdzie" ?
Ten post edytował porywacz 9.04.2012, 17:59:06 |
|
|
![]()
Post
#16
|
|
Grupa: Zarejestrowani Postów: 2 707 Pomógł: 290 Dołączył: 16.12.2008 Skąd: Śląsk Ostrzeżenie: (0%) ![]() ![]() |
Napisz to od nowa bo jeżeli to nie robisz tylko dla treningu to userbility tego kuleje.
Czemu? Walisz całą weryfikacje do jednego warunku - czy ktoś wpiszę zły e-mail albo za krótkie hasło to będzie mu się wyświetlał ten sam błąd. Jak lepiej? Pomijając rzucanie wyjątków itp. najprostszy sposób to tablica $errors i taki system:
Potem count i foreach, którym wyświetlisz wszystkie błędy (np. w akapitach z klasą error). Do walidacji e-mail stosuj filter_var, a nie wyrażeń regularnych. Ten post edytował markonix 9.04.2012, 18:09:18 |
|
|
![]()
Post
#17
|
|
Grupa: Zarejestrowani Postów: 55 Pomógł: 0 Dołączył: 16.03.2012 Skąd: Austria Ostrzeżenie: (0%) ![]() ![]() |
Markonix, dzięki za pomoc. Tobie także, !*! (IMG:style_emoticons/default/smile.gif)
Już wszystko działa jak należy. YEAH (IMG:style_emoticons/default/biggrin.gif) |
|
|
![]()
Post
#18
|
|
Grupa: Zarejestrowani Postów: 4 298 Pomógł: 447 Dołączył: 16.11.2006 Ostrzeżenie: (0%) ![]() ![]() |
W takim razie coś takiego "ujdzie" ?
Niczego nie zrozumiałeś. Ujdzie, ale to nie znaczy że jest dobrze, przeciwnie. |
|
|
![]()
Post
#19
|
|
Grupa: Zarejestrowani Postów: 55 Pomógł: 0 Dołączył: 16.03.2012 Skąd: Austria Ostrzeżenie: (0%) ![]() ![]() |
Wiem, że nie jest tak dobrze, dlatego napisałem wszystko od nowa tak jak napisał markonix ^^
Tutaj skrypt:
Może nie jest idealnie ale ważne, że działa. Akurat na tym chciałem się skupić, ponieważ jest to mój pierwszy skrypt rejestracji (IMG:style_emoticons/default/biggrin.gif) |
|
|
![]()
Post
#20
|
|
Grupa: Zarejestrowani Postów: 4 298 Pomógł: 447 Dołączył: 16.11.2006 Ostrzeżenie: (0%) ![]() ![]() |
Prawie, sprawdź czy formularz został wysłany i zobacz jakie są różnice między empty() a isset(), sprawdzaj też czy zmienne to stringi, a i nie musisz robić połączenia na początku z bazą, rób je np. gdy login zostaje przesłany. Sprawdzaj to co jest potrzebne w danym momencie. No i teraz nie sprawdzasz czy email jest poprawny?(IMG:style_emoticons/default/wink.gif)
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 22.08.2025 - 14:31 |