Php megint idézőjelbe, eltávolítjuk a hiányosságokat és állandó PHP_INI_
PHP: megint idézőjelbe, megszüntetve a hiányosságokat és állandó PHP_INI_ *
Tipikus feladatok kizárt, hogy belépjenek a felhasználó felesleges szóközöket és / vagy a címke megoldódott szinte minden szakmai script PHP-ben.
Címkék eltávolítása könnyen strip_tags alapfelszereltség. hanem eltávolítani az összes extra terek (beleértve a szavak között), nem elég nekünk a standard berendezés. legalább, akkor kell használni a reguláris kifejezés:
(Vagy alternatív kifejezést itt).
Will csak megoldatlan probléma idézetek. Sajnos, az alapértelmezett PHP beállításait (köztük a jelenlegi verzió 5.3.1), idézi a húr át a módszer POST vagy GET után felhasználói, miközben megjeleníti azokat a képernyőn lehet „szűrni”, azaz az „a a kód lesz # 92; „:
Enter „word1” adja kimenet # 92; "word1 # 92;". Idézetek beállításokat PHP 4-5 változatban már megfelelnek a 3 változó jövőbeni verziójában 6 ígéretüket eltávolítani.
magic_quotes_gpc - ha az irányelv engedélyezve van, az összes karakter. " ”. \ És NULL (a nulla byte-kód) automatikusan menekülni backslash \. Verzió óta 5.3.0 elavult opció, el lesz távolítva a PHP 6.0.0. Ne változtassa szoftververzió régebbi 4.2.3. Alapértelmezés szerint engedélyezve van, ez a setup „bűnös” az a tény, hogy mi történt a szót.
magic_quotes_runtime - Ha engedélyezve van, a legtöbb visszatérő függvények adatbázisból vagy szöveges fájlt, majd visszatér a képernyő ugyanazon backslash dupla és szimpla idézőjelet. De ez még nem minden! Ha emellett tartalmazza magic_quotes_sybase irányelvet. Csak ezután megszökött az aposztróf jelet, nem egy karakterláncot és egy idézetet! Szerencsére ez az irányelv is vezérelhető szoftver, alapértelmezés szerint ki van kapcsolva, a verzió 5.3.0 elavult, és meg kell szüntetni a 6.0.0.
magic_quotes_sybase - mint már említettük, ha ez az opció engedélyezve van, akkor megváltoztatja a szabályokat a aposztróf árnyékolás, úgy azt egy további aposztróf helyett backslash ha magic_quotes_gpc vagy magic_quotes_runtime megengedett. Irányelv vezérelhető algoritmikusan alapértelmezés szerint tiltva. Sehol sem megírva, hogy ez nem helyes, de a PHP 6.0.0 Az irányelv is meg kell szüntetni.
Mivel mindezt nem megbolondul, és biztosítsák megfelelő kezelése idézetek?
Nemegyszer már megadott kódot mágikus funkciót. amely foglalkozik ezzel a problémával, az utóbbi években vált itt, mint:
Vagyis a 2 irányelvek hogy meg tudja fogalmazni a szoftver, és tegye (távirányítóval üzemzavar „@” - a későbbi verziók), a harmadik irányelv ellenőrzik és feldolgozott „felesleges” a visszaperjelek, ha szükséges. Utolsó kivitelezett standard funkció stripslashes. bár az egyik lenne „megszelídíteni” cserék, mint én, mielőtt:
get_magic_quotes_gpc funkció szintén nem volt oka, elzárására szabvány ini_get:
Ui Ebben a megközelítésben stripslashes függvény törli a kombináció a szimbólumok # 92; „? Még ha szükség van rá, például a mondatban hogyan lehet én csak az ilyen esetekben, cserélje ki a szimbólum” # 92; „A HTML-kód # 92;
Néha van, hogy megoldja a problémát fordított - szűrés a „veszélyes” backslash. Add visszaperjelet ha magic_quotes_gpc ki van kapcsolva, akkor beállíthatja a standard funkció addslashes. De ha magic_quotes_gpc be van kapcsolva, akkor nem kell addslashes - kap egy kettős árnyékolás. mert akkor a addslashes funkciót, és így automatikusan alkalmazzák az összes GET adatokat. POST. és sütit.
Most a teljes kód például eltávolítjuk a bemeneti címkéket, minden extra terek között tokenek nem függ az idézetek a beállításokat és visszatér formájában jegyzik annyira:
(A példában nem elég nyitó és záró HTML). Mint látható, mielőtt kiadja a címke