2016-05-26 7 views
0

Ich arbeite an einem System, wo ich Benutzereinstellungen abrufen und in Cookies mit JSON einfügen, weil ich eine Javascript-Datei habe, die den Wert im Cookie auch verwenden muss.PHP-Objekt zu JSON gibt seltsame JSON zurück

Jetzt, wenn ich JSON.Stringify() mit Javascript verwende, bekomme ich die Daten so, wie ich es erwarte. enter image description here

Hier ist mein Code aus der PHP-Datei: enter image description here

Allerdings, wenn ich gehe, um das Cookie zu überprüfen, nachdem es den PHP-Skript ich das bekommen hat, lief

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)); 
    } 
} 

jede Hilfe würde sehr geschätzt werden!

+0

danke Thamilan, ich durfte keine Bilder posten. –

+0

Haben Sie versucht, 'json_encode (get_object_vars ($ selectedCategories))' 'zu drucken, um den gültigen JSON zu sehen? – fire

+0

Ich weiß, dass es eine dumme Frage sein kann, aber ich bin nicht zu Hause in der Webentwicklung, könntest du erklären, wo ich die Ergebnisse von meinem Druck finde? Ich benutze chrome –

Antwort

0

In meinem Fall hatte ich mehrere Probleme: zuerst habe ich versucht, ein Objekt (das ich für ein Array hielt) in den Cookie einzugeben. Dies hatte den seltsamen Cookie zur Folge, da der PHP-Cookie nur die Startzeichenfolge für den Urlencode enthielt.

Zweitens wusste ich nicht, dass Cookies automatisch in PHP urlencoded, so dass mich von warf. Wenn ich jetzt nur urldecode verwende, an dem Punkt, an dem ich die Daten vom Cookie zurückgebe. Es sollte einfach das JavaScript-Cookie übergeben, ohne es zu bearbeiten, und mein PHP-Cookie wird verwendbar sein.