2013-09-26 8 views
0

Voici la sortie de ce qui s'affiche lorsque j'écho le cookie directement, puis essayez et json_decode.Impossible de décoder json. C'est un tableau que j'ai encodé en tant que json et stocké en tant que cookie.

$_COOKIE['mycookie'] = {\"table_name\":\"wp_customtable\",\"time\":\"2013-09-26 08:18:23\",\"post_id\":null,\"referer\":\"www.bing.com\",\"keywords\":\"350 rear main seal replacement 11\",\"full_referrer\":\"http:\\/\\/www.bing.com\\/search?q=350+rear+main+seal+replacement+11&go=&qs=n&form=QBRE&pq=350+rear+main+seal+replacement+11&sc=0-32&sp=-1&sk=&cvid=dc09d67a2d214c8394bd39f2b28cf6cc\",\"ip\":\"123.45.67.89\"} 

$cookie = $_COOKIE['mycookie']; 
$output = json_decode($cookie, true); 

var_dump($cookie); 

string(392) "{\"table_name\":\"wp_customtable\",\"time\":\"2013-09-26 08:18:23\",\"post_id\":null,\"referer\":\"www.bing.com\",\"keywords\":\"350 rear main seal replacement 11\",\"full_referrer\":\"http:\\/\\/www.bing.com\\/search?q=350+rear+main+seal+replacement+11&go=&qs=n&form=QBRE&pq=350+rear+main+seal+replacement+11&sc=0-32&sp=-1&sk=&cvid=dc09d67a2d214c8394bd39f2b28cf6cc\",\"ip\":\"123.45.67.89\"} 

var_dump($output); 
NULL 
+0

Pourquoi '\" ' « s se sont échappés – Wrikken

+0

Aucun indice Les données est un tableau à l'origine, et?. c'est le code que j'ai utilisé pour le coder json 'json_encode ($ myarray)' EDIT Pour être plus précis, voici la ligne 'setcookie (" mycookie ", json_encode ($ myarray), time() + 3600 * 24 , '/', 'domain.com', faux, faux) ' – Branndon

+0

Avez-vous toujours activé ['magic_quotes_gpc'] (http://www.php.net/manual/fr/info.configuration.php#ini.magic-quotes-gpc)? Il est obsolète, et devrait être désactivé, mais si vous travaillez actuellement avec il est activé il est temps de vérifier l'ensemble du projet si vous pouvez le désactiver en toute sécurité ... – Wrikken

Répondre

2

Il suffit de se débarrasser des barres obliques avant les citations:

json_decode(str_replace('\"', '"', $cookie), true); 

See fiddle

+0

Alors que cela fonctionne techniquement, c'est traiter le symptôme plutôt que la source ... – Wrikken

+0

D'accord, fonctionne, mais pas une solution pour le problème original. Le projet est un plugin WordPress que je suis en train de créer, donc je voudrais résoudre ce problème de manière correcte pour qu'il fonctionne sur tous les serveurs. – Branndon

Questions connexes