Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP] Filtracja $_POST
Forum PHP.pl > Forum > Przedszkole
Elber
Witam, jak najlepiej filtrować zmienne które idą POST'em do bazy lub są jednym z kryteriów szukania w bazie ? W tym momencie mam coś takiego

htmlspecialchars(stripslashes(trim($_POST['zmienna'])), ENT_QUOTES);

ale nie wiem czy to będzie spełniało swoją rolę i czy lepiej użyć czegoś innego ?
darko
Było setki razy. Gorąco polecam przypięty temat.
Elber
Toś mi pomógł ... nie ma co ... Nie potrzebuję definicji żadnych tylko odpowiedź czy htmlspecialchars(stripslashes(trim($_POST['zmienna'])), ENT_QUOTES); jest OK czy używać czegoś innego ...
darko
Tam jest odpowiedź na Twoje pytanie, wystarczy przeczytać wątek, nawet nie cały.
Elber
A skoro Ty to wiesz to nie możesz mi tego napisać ? Bardzo ładnie proszę. bo oglądam ten wątek i nic takiego nie widzę tam

Nikt nie podpowie ?
croc
Moim zdaniem wrzucanie danych przefiltrowanych htmlspecialchars do bazy to bardzo zły pomysł, bo tracisz informację o oryginalnej strukturze wpisu. (co i tak większość klepaczy kodu - NIE programistów - olewa).

Dla mnie stripslashes + mysql_real_escape_string.

Elber
OK wink.gif Bardzo dziękuję za tą odpowiedź wink.gif O to mi chodziło smile.gif

Takie upewniające się pytanie biggrin.gif Czy to wystarczy przed różnymi nieautoryzowanymi próbami wyciągnięcia czegoś z bazy ?
croc
Z mysql_real_ascape_string masz 100% pewności, że nikt nie wyciągnie nic z bazy przez - w Twoim przypadku - dane pole wysłane przez POST. A to dlatego, że cokolwiek wpisze, zostanie wstawione do zapytania jak zwykły tekst.
Elber
OK smile.gif Bo wyczytałem że wykonanie stripslashes po mysql_real_escape_string zwraca string taki jakby bez filtracji biggrin.gif Ale to jak jest stripslashes(mysql_real_escape_string($string))
a tutaj podałeś mysql_real_escape_string(stripslashes($string)) wink.gif A mam jeszcze takie jedno pytanie na przyszłość wink.gif Czy gdy wstawię jakiś edytor wysiwyg i kod który on wygeneruje będę chciał wstawić do bazy to też używać mysql_real_escape_string(stripslashes($string)) czy w takim wypadku czegoś innego ?
croc
Masz rację -
nie miałoby najmniejszego sensu. To jak dać cukierek, by zaraz go odebrać biggrin.gif

Tak, edytory WYSIWYG generują normalne łańcuchy znaków - możesz się nimi posługiwać tak samo.
Elber
OK wink.gif w takim razie jeszcze raz wielkie dzięki wink.gif

Jeszcze jedno pytanie wink.gif Bo jak wpiszę coś w textarea i użyje np. entera do przejścia do nowej linii i jak to potem ładuję na stronę to jest wszystko w jednej linii i muszę użyć nl2br() do tego ... da się jakoś zrobić żeby tego nl2br() nie używać? czy lepiej używać ? biggrin.gif
croc
Lepiej używać tongue.gif Co Ci się nie podoba w nl2br? Zawsze możesz wstawić wpis z textarea między znaczniki <pre>, ale to nie najrozsądniejsze rozwiązanie.
Elber
Wszystko mi się w niej podoba biggrin.gif Wszystko jest OK wink.gif THX smile.gif
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.