1

好吧,这让我发疯了。我什至无法让调试代码在这里工作。

使用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 似乎是明显的(如果不合作的话)解决方案。如果没有人能解决这个问题,我愿意接受建议......

4

2 回答 2

0

我也遇到了这个问题。我通过删除 cookie 描述中的域来解决它。

例子:

document.cookie="username=John Doe; expires=Thu, 18 Dec 2013 12:00:00 UTC; path=/"; 

PS 我在 IE、Chrome 和 Opera 中发现了这个问题。在 Firefox 中它可以工作。

于 2015-04-07T19:47:09.827 回答
-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']))
{
}
于 2013-07-11T10:38:44.873 回答