![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 46 Pomógł: 1 Dołączył: 23.04.2011 Ostrzeżenie: (0%) ![]() ![]() |
Witam
Mój system logowania w mocnym uproszczeniu wygląda tak
Zauważam w nim jednak kilka luk i w związku z tym mam kilka pytań: - Po pierwsze, jeżeli przy zmiennej login nie dopiszę isset, to wyskakuje mi błąd notice, a jeżeli dopiszę tak jak to jest teraz to występuje sytuacja niepożądana. Pozwalam wtedy użytkownikom na wpisywanie pustych znaków lub niewpisywanie niczego. Muszę się wtedy ratować funkcją empty, by sprawdzić czy zmienna nie jest pusta. Czy jest jakiś sposób na to żeby nie musieć dopisywać isset? Bo to trochę głupie jest najpierw zezwalać na puste znaki funkcją isset po to żeby za chwilę funkcją empty zabeaniać ich wpisywania. - Po drugie, czy istnieje jakaś funkcja podobna do empty, która akceptuje wpisanie 0 (zera) ale blokuje białe znaki? Bo empty chroni przed tym jak ktoś nic nie wpisze, ale jak już ten ktoś wklepie kilka razy spację to nie ochroni. Natomiast jak ktoś wprowadzi znak 0 (zero) to go nie dopuszcza. - I trzecie ostatnie pytanie. Dlaczego tylko przy pierwszej zmiennej tutaj przy loginie wymaga, żeby dopisać isset a przy haśle nie? Wymusza, by przy zmiennej post login było isset, a przy zmiennej post hasło już sobie można dopisać isset, ale się nie musi. |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 1 240 Pomógł: 278 Dołączył: 11.03.2008 Ostrzeżenie: (0%) ![]() ![]() |
A czemu miałbyś użytkownikowi nie pozwolić na wpisywanie "białych znaków"? To jego sprawa, że wpisuje błędne dane. Ew. możesz login i hasło jeszcze trim() - em potraktować.
-------------------- |
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 8 068 Pomógł: 1414 Dołączył: 26.10.2005 Ostrzeżenie: (0%) ![]() ![]() |
Możesz sobie isset sprawdzić czy istnieje pole, a potem preg_match sprawdzić czy string ma w sobie niedozwolone znaki, jeżeli tak to błąd.
Ad. empty: http://pl1.php.net/empty#103756 |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 46 Pomógł: 1 Dołączył: 23.04.2011 Ostrzeżenie: (0%) ![]() ![]() |
Może się czepiam, ale po prostu wydało mi się głupie dodawanie isset i pozwalanie na użycie białych znaków, żeby za chwilę musieć sprawdzać poprzez empty czy przypadkiem nie zostały one wpisane. Myślałem, że może jest sposób żeby nie musieć dopisywać do zmiennej issetu i wtedy już nie musiałbym dodatkowo stosować empty. Ale wtedy pojawia się błąd notice.
No i druga sprawa to z tym zerem. Przecież zero to znak (liczba), to jak się go wpisze to błędnie skrypt pokaże, że nie zostały wypełnione pola, bo przecież zostały wypełnione tym właśnie zerem. Jeśli można to prosiłbym o wyjaśnienie zasady działania zmiennych tablicowych w warunkach if. A dokładniej, to dlaczego jest mus, żeby pierwsza zmienna (w moim przypadku login) miała dopisane isset a druga (zmienna hasło) może mieć to dopisane ale nie musi. |
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 8 068 Pomógł: 1414 Dołączył: 26.10.2005 Ostrzeżenie: (0%) ![]() ![]() |
Bo jeżeli wysyłasz form to na bank masz 2 pola, więc isset defacto nie jest potrzebny dla password, ale dobrze jak jest.
Poza tym zamiast isset możesz zostawić tylko empty, da to ten sam efekt tyle że ze sprawdzeniem czy ciąg nie jest pusty |
|
|
![]() ![]() |
![]() |
Aktualny czas: 21.08.2025 - 08:01 |