Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Funckja filtrująca
Forum PHP.pl > Forum > PHP
loczek111
Witam serdecznie,
Przy wprowadzaniu danych do bazy korzystam z funkcji która filtruje mi zmienne. Problem polega na tym że gdy wprowadzam zmienne tekstowe o długości większej niż 2000 znaków funkcja nic nie wypluwa.
Po zakomentowaniu linijki //$zmienna = stripslashes($zmienna); ograniczenie znika (opiera się wtedy na if'ie). Dodatkowo dziwi mnie że nie ważne czy w if'ie nad tą linijką wpisze true czy false (na sztywno) to nic nie zmienia, tylko komentarz albo wywalenie tej linijki pomaga
Co tu się dzieje o czym nie wiem i dlaczego tak?
  1. function filtruj($zmienna)
  2. {
  3. require "config.php";
  4. $zmienna = stripslashes($zmienna);
  5.  
  6. if(strlen($zmienna)>2500)
  7. {header('Location: '.$_SERVER["HTTP_REFERER"]); exit();}
  8.  
  9. return mysqli_real_escape_string($mysqli, htmlspecialchars(trim($zmienna)));
  10. }
viking
Używaj prepared statements a nie jakieś pseudo funkcje sprzed 10 lat.
loczek111
Przy użyciu prepare statements powinienem się jeszcze jakoś zabezpieczać na inne sposoby? Czy jest to już wystarczająca ochrona?
viking
Standardowo np przy wyświetlaniu przeciw xss.
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.