Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Jak robi się przeczące warunki if?
Forum PHP.pl > Forum > Przedszkole
Saki
SOLVED
<modinfo> enleth: a to ciekawosta, empty() nie działa na $_SERVER
<enleth> modinfo: no właśnie
<inf> empty to jeden wielki clusterfuck
<enleth> modinfo: używaj raczej isset() w takich sytuacjach
<modinfo> enleth: no, zrobiłem !isset() i działa smile.gif

Witam, mam mały problem, php przepuszcza moje dane dalej bez zatrzymania skryptu i dodaje puste wartości do MySQL.

na początku skryptu dodałem to:
  1. echo "a&gt;".strlen($_POST['boardname'])."<br />";
  2. echo "b&gt;".strlen($_POST['description'])."<br />";
  3. echo "c&gt;".strlen($_POST['boardurl'])."<br />";
  4. echo "d&gt;".strlen($_POST['captcha'])."<br />";
  5.  
  6. if (empty($_POST['boardname']) && empty($_POST['description']) && empty($_POST['boardurl']) && empty($_POST['captcha'])) { die('Podaj wszystkie dane'); }
  7. if( strlen($_POST['boardname']) <= 3 or strlen($_POST['boardname'])>=255 ) { die('Tytuł, min 3 znaki, max 255'); }
  8. if( strlen($_POST['description']) <= 10 or strlen( $_POST['description']) >= 3000 ) { die('Opis, min 10 znaków, max 3000'); }
  9.  
  10. echo "lol";




po uruchomieniu skryptu pokazuje:

a>0
b>0
c>0
d>0
lol

Co ja źle robie, że die() nie zatrzymuje skryptu?

PS. Testowałem exit() i też nie zatrzymuje skryptu

PS.

print_r( empty($_POST['boardname']) );
print_r( empty($_POST['description']) );
print_r( empty($_POST['boardurl']) );
print_r( empty($_POST['captcha']) );

zwraca: 1111
redeemer
  1. ...
  2. if( strlen($_POST['boardname']) <= 3 && strlen($_POST['boardname'])>=255 )
  3. ...
Ten warunek nigdy nie będzie spełniony. "Jeśli długość boardname jest mniejsza lub równa niż 3 i jest większa lub równa niż 255".
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.