使用https://github.com/carhartl/jquery-cookie,我设置了一个Cookie:
var link=$.getQueryParam('q');
var cookie_name="project_"+q+"_diff";
$.cookie(cookie_name,true,{expires:7,path:'/'});
我尝试在PHP脚本中读取此cookie:
$cookie_name="project_".$q."_diff";
if($_COOKIE[$cookie_name]=='true')
{
echo "<!-- Cookie Status is TRUE -->";
// stuff
}
else
{
echo "<!-- Cookie Status is FALSE for cookie '$cookie_name' \n All cookies: ".print_r($_COOKIE,true)."\n-->";
// Other stuff
}
我在Chrome的控制台中验证了各种页面重新加载,实际上已经设置了JS cookie,我可以稍后访问它。
源代码结果?
<!-- Cookie Status is FALSE for cookie 'project_80afd7a53462bb02dfd39e359ac3f291_diff'
All cookies: Array
(
)
-->
我还在控制台中根据另一个StackOverflow问题运行了以下内容,稍后在控制台中检索了结果,但仍未输出到JS。
function createCookie(name,value,days) {
if (days) {
var date = new Date();
date.setTime(date.getTime()+(days*24*60*60*1000));
var expires = "; expires="+date.toGMTString();
}
else var expires = "";
document.cookie = name+"="+value+expires+"; path=/; domain=.compute.amazonaws.com";
}
我没有收到任何饼干。设置有点奇怪(在渲染的Jinja模板上运行PHP)但所有其他标准变量都在工作,我只需要一个会话长用户切换和cookie似乎是明显的(如果不合作)解决方案。如果没人能解决这个问题,我愿意接受建议......
答案 0 :(得分:0)
我也有这个问题。我通过删除cookie描述中的域来解决它。
示例:
document.cookie="username=John Doe; expires=Thu, 18 Dec 2013 12:00:00 UTC; path=/";
P.S。我在IE,Chrome和Opera中发现了这个问题。在Firefox中它可以工作。
答案 1 :(得分:-1)
将此代码放在index.php页面
中if(isset($_COOKIE['uniqueID'])=='')
{
$uniquenum = rand(1000, 10000);
setcookie('uniqueID',$uniquenum,time() + (86400 * 7)); // 86400 = 1 day
}
使用
获取cookie值if(isset($_COOKIE['uniqueID']) && !empty($_COOKIE['uniqueID']))
{
}