Inaczej przesyłają się dane w POST po przeniesieniu na nowy

Witam,

Przed zmianą serwera w poście dane szyły tak:

Array

(

    [userData] => {"user":"JakisLogin","ciag":"JakisCiagJakisCiag"}

)

Po zmianie serwera dostaję:

Array

(

    [userData] => {\"user\":\"JakisLogin\",\"ciag\":\"JakisCiagJakisCiag\"}

)

Te zabezpieczone dane nie wchodzą do:

$userData = json_decode($userData, true);

Tak jak dawniej czyli BEZ \ wypluwało mi tablicę i mogłem sobie dalej operować na niej. Teraz nie wypluwa nic.

Domyślam się, że są to dodatkowe zabezpieczenia przesyłania danych. Ale nie mam pojęcia gdzie to zmienić. Macie jakieś pomysły?

Takie zachowanie powoduje konfiguracja php na hostingu. Zapewne w phpinfo() znajdziesz –enable-magic-quotes, co oznacza, że masz włączone magic quotes. W skrócie chodzi o zabezpieczenie przez atakiem typu SQL Injection, dlatego takie znaki jak pojedynczy cudzysłów, podwójny, backslash i NULL, pochodzące z danych POST, GET, COOKIES, REQUEST są automatycznie poprzedzane backslashem. Tego automatu dziś już tego się raczej nie używa, od php 5.3 został uznany za przestarzały, a od php 5.4 usunięty.

Więcej informacji podaje manual php.

  1. [*:2btkloaw]
    Co to są Magic Quotes,