点击设置PHP cookie
所以我不想使用JS/jQuery来实现这一点——但我似乎无法实现这一点 我有一个链接点击设置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 现在我点击链接
,我正试图用它来设置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
}
});