我是Slim框架的新手。我正在尝试使用中间件功能来进行一些身份验证。然而,虽然我可以在一条路由上设置cookie,但它在页面刷新时就消失了。
$app->get('/demo', function () use ($app) {
try {
$app->setCookie('uid', 'blah', '2 Days');
print_r($app);
} catch (Exception $e) {
$app->response()->status(400);
$app->response()->header('X-Status-Reason', $e->getMessage());
}
});
$app->run();
执行print_r表示cookie已设置
[cookies] => Slim'Http'Cookies Object ( [defaults:protected] => Array ( [value] => [domain] => [path] => [expires] => [secure] => [httponly] => ) [data:protected] => Array ( [uid] => Array ( [value] => blah [domain] => [path] => / [expires] => 2 Days [secure] => [httponly] => ) [key] => Array ( [value] => blah [domain] => [path] => / [expires] => 2 Days [secure] => [httponly] => ) ) ) [body:protected] => [length:protected] => 0 ) )
或者至少setCookie正在获取值。但是,如果我转到另一条路由
$app->get('/attractions', function () use ($app) {
try {
print_r($app);
$data = R::find('attractions');
$app->render('attractions.php', array(
'page_title' => "Attractions",
'data' => $data
)
);
} catch (Exception $e) {
$app->response()->status(400);
$app->response()->header('X-Status-Reason', $e->getMessage());
}
});
那么饼干不在那里。此外,在我的firebug控制台的日志中,没有显示我设置的cookie。
你知道是什么问题吗?我在网上找到了一些帖子,比如http://help.slimframework.com/discussions/problems/652-cant-seem-to-get-php-cookies-working
但是到目前为止我还没有解决这个问题。我正在运行MAMP,我已经为这个域设置了一个vhost。Mcrypt php扩展已启用。
任何想法?
我在使用Google Chrome浏览器时遇到了cookie域(用于'localhost')的问题。我在cookies中删除了域名,问题消失了。
>
我把所有的代码都去掉了,看起来好像有什么东西在设置标题。也可能是因为我在Slip应用程序配置中设置了域。我还在/etc/hosts/和vhost的域名末尾添加了一个。com,以防Chrome处理本地主机上的cookie。