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


(1q2w3e4r) #1

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?


(Copycona) #2

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](http://www.php.net/manual/pl/security.magicquotes.what.php),