【问题标题】:symfony 2.4 cookies does not setsymfony 2.4 cookie 未设置
【发布时间】:2014-06-10 17:08:01
【问题描述】:
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;

我已使用此代码设置 cookie。但是,它没有设置。不知道为什么??

我的浏览器启用了 Cookie。

【问题讨论】:

    标签: php symfony cookies


    【解决方案1】:

    我建议您使用https://github.com/oodle/KrumoBundle 测试您的代码 它最适合调试 cookie 等对象元素。

    我同意 Tomasz 的观点,“反对你的 cookie 应该在下一次请求服务器时设置。”部分答案。但是你应该使用 $response->sendHeaders();而不是返回操作。 我得到了带有返回 $response 的干净白页;

    代码:

    $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();
    

    // 之后你可以返回到动作相关的树枝或重定向到某个地方。

    【讨论】:

    • $response->sendHeaders();必须在 setCookie() 之后调用
    【解决方案2】:

    在此代码中,您的$_COOKIE 不会被设置,因为它是在将响应发送回用户时设置的。 因此,在执行您的代码并返回 Response 对象后,您的 cookie 应该被设置,但在 next 对服务器的请求中。

    $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;
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-10-10
      • 2015-09-02
      • 1970-01-01
      相关资源
      最近更新 更多