点击设置PHP cookie

点击设置PHP cookie,php,cookies,Php,Cookies,所以我不想使用JS/jQuery来实现这一点——但我似乎无法实现这一点 我有一个链接,我正试图用它来设置cookie if($_GET['hideupdates'] == 'hide'){ setcookie("HideUpdates", "hide", time()+60*60*24*5, "/", $vars->networkSite); } 它“工作”,但我必须点击链接两次 从“site.com”我可以var\u dump()cookie,它会出现NULL 现在我点击链接

所以我不想使用JS/jQuery来实现这一点——但我似乎无法实现这一点

我有一个链接
,我正试图用它来设置cookie

if($_GET['hideupdates'] == 'hide'){
    setcookie("HideUpdates", "hide", time()+60*60*24*5, "/", $vars->networkSite);
}
它“工作”,但我必须点击链接两次


从“site.com”我可以
var\u dump()
cookie,它会出现
NULL

现在我点击链接并转到“site.com?hideUpdate=hide”,cookie仍然显示为
NULL

但是,当我再次单击链接时,从“site.com?hideupdates=hide”中,cookie返回
hide


我错过什么了吗?或者我“必须”使用JS/jQuery来实现这一点吗?

Cookies只有在设置好并发送新页面请求后才会生效。这是因为cookie是随页面请求一起发送的,它们不会神奇地出现在服务器上


您的解决方案是在设置cookie后进行页面刷新。

setcookie
不会影响当前请求。为此,您还需要手动设置相关的
$\u COOKIE
变量:

setcookie("HideUpdates",$_COOKIE['HideUpdates'] = "hide", time()+60*60*24*5, "/", $vars->networkSite);

唯一的方法是JS或jQuery,因为正如其他人所说,cookie不会影响当前页面请求

您需要使用jQuery解决方案一些服务器在jquery.cookie.js上出现问题(解决方案是重命名文件,例如:jquery.cook.js)

jquery cookie插件的使用

创建会话cookie:

 $.cookie('the_cookie', 'the_value');
创建过期cookie,7天后:

 $.cookie('the_cookie', 'the_value', { expires: 7 });
创建过期cookie,在整个站点上有效:

 $.cookie('the_cookie', 'the_value', { expires: 7, path: '/' });
阅读cookie:

 $.cookie('the_cookie'); // => "the_value"
 $.cookie('not_existing'); // => undefined
阅读所有可用的cookie:

 $.cookie(); // => { "the_cookie": "the_value", "...remaining": "cookies" }
删除cookie:

 // Returns true when cookie was found, false when no cookie was found...
 $.removeCookie('the_cookie');
//与写入cookie时的路径相同

 $.removeCookie('the_cookie', { path: '/' });
您可以尝试本地存储。它适用于Chrome、FF和IE9及更高版本。我们不支持IE7-10!万岁

IE8在本地存储方面存在一些问题

脚本必须在$(document).ready(function(){})中


请记住:在php将控制权移交给脚本之前,将填充超全局变量。脚本中的任何操作都不会更改它们的值,除非您显式地将更改推送到superglobals。否则,这些更改只会在下次脚本运行时反映在superglobals中。我没有意识到,但你是对的。刷新与再次单击链接相同。我当时的印象是,它会比一切都重要。太棒了!简单的解决方案和完美的工作!正是我要找的!如果可以,我会在4米后接受:)
$(document).ready(function() {
   $("#btnClick").click(function(e) {
      e.preventDefault();
      localStorage.setItem('cookieName', 'cookie_value');
  window.href.location = "your_new_page.php";   
   });


   //On the same page or other page

   if (localStorage.getItem('cookieName')){
      //do here what you want


   }else{
      //do something else

   }

});