2014-06-09 3 views
0
use Symfony\Component\HttpFoundation\Request; 
use Symfony\Bundle\FrameworkBundle\Controller\Controller; 
use Symfony\Component\Security\Core\SecurityContext; 
use ESS\UserBundle\Entity\User; 
use ESS\UserBundle\Form\UserType; 
use ESS\UserBundle\Form\UserEdit; 
use Symfony\Component\HttpFoundation\Response; 
use Symfony\Component\HttpFoundation\Cookie; 

     $user_cookie = new Cookie('user','admin',12000); 
       $code_cookie = new Cookie('ccode','1234',12000); 
       $response = new Response(); 
       $response->headers->setCookie($user_cookie); 
       $response->headers->setCookie($code_cookie); 
    print_r($_COOKIE); 
    exit; 

J'ai utilisé ce code pour définir un cookie. Mais, ce n'est pas défini. Ne peut pas comprendre pourquoi ??symfony 2.4 cookies ne sont pas réglés

Le cookie est activé sur mon navigateur.

Répondre

4

Je vous suggère de tester votre code avec https://github.com/oodle/KrumoBundle Il est le meilleur pour les éléments d'objet de débogage comme un cookie. Je suis d'accord avec Tomasz, "votre objet cookie devrait être défini mais dans la prochaine requête au serveur." partie de la réponse. Mais vous devriez utiliser $ response-> sendHeaders(); au lieu de l'opération de retour. J'ai obtenu une page blanche propre avec le retour $ response;

code:

$user_cookie = new Cookie('user','admin',12000); 
$code_cookie = new Cookie('ccode','1234',12000); 
$response = new Response(); 
$response->headers->setCookie($user_cookie); 
$response->headers->setCookie($code_cookie); 
$response->sendHeaders(); 

// Après vous pouvez revenir à brindille liée à l'action ou rediriger quelque part.

+0

$ response-> sendHeaders(); doit être appelé après setCookie() –

0

Dans ce code, votre $_COOKIE ne sera pas défini car il est défini lorsque la réponse est renvoyée à l'utilisateur. Donc, après l'exécution de votre code et retour Response objet votre cookie doit être réglé mais dans suivant demande au serveur.

$user_cookie = new Cookie('user','admin',12000); 
$code_cookie = new Cookie('ccode','1234',12000); 
$response = new Response(); 
$response->headers->setCookie($user_cookie); 
$response->headers->setCookie($code_cookie); 
return $response; 
Questions connexes