【发布时间】:2020-09-10 09:48:44
【问题描述】:
我在我的functions.php中设置了一个cookie,如下:
add_action('send_headers', 'sfdc_cookie');
function sfdc_cookie() {
if( isset($_GET['sfdc']) && '' != $_GET['sfdc'] ) {
if( empty($_COOKIE['sfdc']) ){
if ($_GET['sfdc'] == 'mim'):
setcookie('sfdc', 'cookievalue', time()+3156000, '/', 'www.mydomain.com' );
//$_COOKIE['sfdc'] = 'cookie';
endif;
}
}
echo $_COOKIE['sfdc'];
}
如果我使用 ?sfdc=mim 访问站点上的任何页面,则会显示该值。我假设 cookie 是在那时设置的,当我从 Chrome 浏览器检查存储的 cookie 时,它似乎已设置。但是,如果查询字符串不存在,就好像 cookie 不存在。我什至无法将 cookie 回显到页面上。为什么当 URL 中不存在查询字符串时我无法回显该值?
我已将 add_action 从 send_headers 更改为 init,结果相同。
【问题讨论】:
-
也许您想使用
$_SESSION变量?它对我很有用。您还可以检查session是否已经启动,如果没有,您可以启动它,然后检查会话变量。这有帮助吗?