Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP] Isset i Empty - kilka pytań
Baku12345
post
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

  1. if (isset($_POST['login']) && isset($_POST['haslo']))
  2. {
  3. if (!empty($_POST['login']) && !empty($_POST['haslo']))
  4. {
  5. $login = addslashes(strip_tags($_POST['login']));
  6. $haslo = addslashes(strip_tags($_POST['haslo']));
  7.  
  8. $result = $dbase->get_query("SELECT * FROM uzytkownicy where login = '".$login."' && haslo = '".$haslo."';");
  9.  
  10. if ($result)
  11. {
  12. echo "zalogowany";
  13. }
  14. else
  15. {
  16. echo "podałeś błędny login lub hasło!<br>spróbuj ponownie";
  17. }
  18. }
  19. else
  20. {
  21. echo "nie wprowadziłeś wszystkich danych<br>spróbuj ponownie";
  22. }
  23. }



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.
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 21.08.2025 - 05:04