2016-05-26 5 views
0

Je travaille sur un système où je récupère les préférences utilisateur et les insère dans les cookies avec JSON car j'ai un fichier Javascript qui doit aussi utiliser la valeur dans le cookie. Maintenant, quand j'utilise JSON.Stringify() avec javascript, j'obtiens les données comme je l'attendais. enter image description herePhp Objet à JSON renvoie bizarre Json

Cependant, quand je vais vérifier le cookie après avoir exécuter le script PHP je reçois ceci: enter image description here

Voici mon code du fichier php:

public function onSecurityInteractiveLogin(InteractiveLoginEvent $event){ 
    if($this->securityContext->isGranted('IS_AUTHENTICATED_FULLY')){ 
     $selectedCategories = $event->getAuthenticationToken()->getUser()->getProfile()->getCategories(); 
     setcookie("userInterests",json_encode(get_object_vars($selectedCategories)),(time()+3*60*60*24*30)); 
    } 
} 

toute aide serait grandement apprécié!

+0

merci Thamilan, je n'étais pas autorisé à poster des photos. –

+0

Avez-vous essayé d'imprimer 'json_encode (get_object_vars ($ selectedCategories))' à l'écran pour voir son json valide? – fire

+0

Je sais que c'est peut-être une question stupide, mais je ne suis pas à la maison dans le développement web, pourriez-vous expliquer où je peux trouver les résultats de mon impression? J'utilise chrome –

Répondre

0

Dans mon cas, j'ai eu plusieurs problèmes: d'abord, j'ai essayé d'entrer un objet (que je pensais être un tableau) dans le cookie. Cela a eu comme résultat le cookie bizarre, car le cookie PHP ne contenait que la chaîne de démarrage de l'urlencode. Deuxièmement, je ne savais pas que les cookies sont automatiquement encodés en PHP, ce qui m'a jeté. Si je viens d'utiliser urldecode maintenant, au point où je retourne les données du cookie. Il devrait juste passer le cookie javascript sans l'éditer et mon cookie php sera utilisable.