Mágikus idézetek - ahelyett frakciók idézi Online

Mágikus idézetek - ahelyett frakciók idézi Online
Mágikus idézetek (Magic Quotes) PHP

Ez a cikk megmondja PageRanker.Ru kezdők, valamint azok, akik már programozási tapasztalat PHP az úgynevezett „mágikus idézetek”.

Ha az oldalon jelennek meg pontatlanul megadott adatokra - idézetek helyébe több frakció, illetve a használata kapcsolatok nem lehetséges, akkor a problémát nagy valószínűséggel használja mágikus idézetek funkció

Mik a Magic Quotes?

Ha megnézzük a php.ini találunk három irányelvek:
magic_quotes_qpc
magic_quotes_runtime
magic_quotes_sybase

Mindegyikük lehet engedélyezni (On), vagy letiltott (Ki).

Ezek az iránymutatások feladata kiválasztani a speciális jelek a különböző adatokat kapott a php-script és a kimenet a php-script.

magic_quotes_qpc

Ha magic_quotes_qpc direktíva engedélyezve, a speciális karakterek megszökött a következő forrásokból: $ _GET, $ _POST, $ _REQUEST, $ _COOKIE, $ _ENV (a PHP 4). By the way, a végén a neve ennek az irányelvnek GPC rövidítés a GET / POST / cookie-t.

Például, ha az egyik ilyen forrás lesz elem, például egy idézőjelet ( „), idézőjel („), fordított perjel (\), vagy NULL karakter, ez az elem automatikusan árnyékolja backslash:

echo $ teszt; // kimenet: \ "123 \"

Mágikus idézetek - ahelyett frakciók idézi Online
Így, ha azt akarjuk, hogy rögzíti az adatokat a $ _REQUEST MySQL adatbázisban például, nem kell, hogy elkerülje idézetek addslashes funkció, mivel fogják vizsgálni. De ha magic_quotes_gpc van tiltva, akkor kell, hogy elkerülje az erő:

if (get_magic_quotes_gpc (!)) $ test = addslashes ($ teszt);
>

mysql_query ($ res "INSERT INTO test_table (teszt) VALUES ($ teszt)");

Mint látható, itt szoktam get_magic_quotes_gpc funkciót állapotának ellenőrzésére magic_quotes_gpc irányelvet. Ha az irányelvet ki van kapcsolva, azt átvizsgálni a változó $ teszt. Ellenkező esetben a szűrés nem lehetséges, mivel megduplázódik árnyékolás. Ie Ha magic_quotes_gpc be van kapcsolva, akkor:

echo $ teszt; // kimenet: \\\ „123 \\\ '

Ie mi átvizsgáljuk zaekraniruem

Irányelv magic_quotes_gpc pajzsok csak egyszeres idézőjelbe, ha még benne magic_quotes_sybase irányelvet. És ő menekül aposztróf aposztróf:

echo $ teszt; // kiírja "123"

magic_quotes_runtime

Ha ezt az irányelvet, a legtöbb funkciót, hogy visszatérjen az adatokat az adatbázisból például, vagy szöveges fájlokat, majd visszatér a képernyőre a szöveges adatokat. És ha az adalék benne magic_quotes_sybase irányelv majd szitáljuk csak egyetlen idézetek nem backslash és egy idézet.

magic_quotes_sybase

Ez az irányelv a kiegészítést az előző kettő, ahogy már említettük, csak megváltoztatni a szabályokat a aposztróf árnyékolás és az árnyékolás letiltja a többi karakter (dupla idézőjel, backslash és NULL karakter).

Személy szerint én nem értem, hogy miért kell menekülni idézetek még egy idézet. De úgy tűnik, volt egyszer szükséges.

Hogyan lehet, hogy az összes figyelembe kell venni?

Kezdjük azzal, hogy magic_quotes_runtime magic_quotes_sybase irányelv és be lehet kapcsolni ki / be közvetlenül egy PHP script:

ini_set ( 'magic_quotes_runtime', 0);
ini_set ( 'magic_quotes_sybase', 0);

És azt javasoljuk, hogy minden.

Problémák frakciók jelennek meg az oldalon lehet csak le magic idézetek található a rendszerben .htaccess fájlt

De az érték magic_quotes_qpc irányelvet csak a php.ini-ben. htaccess vagy httpd.conf. De gyakran a tárhely szolgáltató ad nekünk csak módosítani kell a .htaccess, és akkor sem mindig. Ezért csak egy következtetés: csak meg kell, hogy vegye figyelembe az értéket magic_quotes_qpc a szkriptek használata esetén, hogy elkerülje a felesleges vetítések, vagy fordítva, nedoekranirovany Ha ez az irányelv a fogyatékkal élő, használat addslashes külső bemeneti adatok (a korábban említett források).

Feltéve persze, hogy a másik két irányelvek Off.

Néha előfordul, hogy a tárhely szolgáltató blokkolja ini_set funkció. Ebben az esetben meg kell nézni az értékeket az irányelvek útján ini_get. És ha az értékek nem felelnek meg minket, a legjobb, ha a kapcsolatot a technikai támogatást az ellenséges azzal a kéréssel, hogy tiltsa ezen irányelvek.

Hogyan lehet kikapcsolni magic idézetek?

Hogy kikapcsolja magic idézetek

  1. hozzon létre egy könyvtárat a .htaccess fájlban (biztos, hogy a ponttal kezdődő)
  2. Foot paszta a következő sort: php_flag magic_quotes_gpc off
  3. zaley a szerveren

Ha a tárhely szolgáltató megengedett a .htaccess fájlt, majd mindennek jól kell működnie.

Annak tesztelésére dolgoztak-e vagy sem

  1. létrehoz egy PHP-fájlt egy húr
  2. öntsük a szerveren, futtatni
  3. látszó lehetőség magic_quotes_gpc. Helyi Érték oszlopban kell OFF

Hogyan lehet kikapcsolni magic quotes keresztül .htaccess?

Ha a szerver egy webes forrás található Apache, a legegyszerűbb megoldás a problémára mágikus idézetek is adni ezt a kódot a .htaccess fájlt rendszer:


php_value magic_quotes_gpc off

Magic Quotes - ez biztosan elavult dolog, de nem veszik őket figyelembe a jelenlegi helyzet veszélyes, amíg a világ megy tovább PHP6.