Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php]zabezpieczenie zmiennych
Forum PHP.pl > Forum > PHP
Mlodycompany
Witam. Otóż rozkminiam sprawe dotyczącą funkcji addslashes. Zastanawiam się czy można filtrować całą tablice czyli np. addslashes($_POST); czy trzeba rozdzielać każdy element czyli np. addslashes($_POST['post']); Co na ten temat sądzicie?
mhw
Wydaję mi się, że addslashes nie działa na tablicach, tylko jako parametr przyjmuje string, ale mogę się mylić...
Zyx
Geniuszu drogi, to co piszesz, jest niestety wbudowane w PHP, zwie się magic quotes i jest jednym z najbardziej kretyńskich wynalazków w dziejach tego języka. Ochroną przed SQL Injection powinna się zajmować warstwa bazy danych, a nie magiczny filtr, który konwertuje wszystko bez patrzenia, czy dana informacja w ogóle trafia do bazy danych... popatrz sobie na PDO, jak to powinno być zrobione i wybij sobie z głowy filtrowanie całej tablicy.

PS. Jaki jest problem sprawdzić w dokumentacji, jakie argumenty akceptuje dana funkcja?
Fifi209
Cytat(Zyx @ 8.01.2010, 19:36:06 ) *
Geniuszu drogi, to co piszesz, jest niestety wbudowane w PHP, zwie się magic quotes i jest jednym z najbardziej kretyńskich wynalazków w dziejach tego języka.

I nie poleca się jej używać.

Co do tematu, można np. tak:

  1. <?php
  2.  
  3. $tablica = array('te\st', 'sd"\fsd');
  4.  
  5. function addslash(&$value) {
  6. $value = addslashes($value);
  7. }
  8.  
  9. array_walk($tablica, 'addslash');
  10. print_r($tablica);
  11.  
  12. ?>
Meares
Można też tak:
  1. function array_addslashes($InArray) {
  2. foreach($InArray as $key => $value) $OutArray[$key] = addslashes($value);
  3. return $OutArray;
  4. }
  5.  
  6. $MojaTablica = array('a', 'b', 'c');
  7. $Mojatablica2 = array_addslashes($MojaTablica);
Fifi209
Tylko po co skoro masz gotową funkcję do tego? I zapewniam, że będzie działała szybciej niż pętla.
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.