Mój system logowania w mocnym uproszczeniu wygląda tak
{ { $result = $dbase->get_query("SELECT * FROM uzytkownicy where login = '".$login."' && haslo = '".$haslo."';"); if ($result) { } else { } } else { } }
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.