我的网站需要一种机制,当用户第一次访问网站时,会将其发送到协议页面。一旦他接受协议,它就会保存在cookie. 之后他可以直接浏览任何页面。
我正在使用javascript 对于cookie,只要permalink设置为default 一个(http://mydomain.com/?p=123
).
只要我换了permalinkpostname (http://mydomain.com/sample-post/
) 它开始出现问题。
(htaccess文件中的更改是按照wordpress的建议进行的)
问题是:即使用户单击协议按钮,也会一次又一次地重定向到协议页面。
以下是代码。
在里面header.php
setCookie("requested_url", document.URL, 4);
var agreement = getCookie("agreement");
if(agreement == "yes"){
var requested_url = getCookie("requested_url");
}
else{
window.location.assign("http://mydomain.com/?page_id=22");
}
在标题中。php,它检查名为agreement的cookie是否设置为yes。如果是,则不执行任何操作。如果未设置为“是”,则重定向到协议页(/?page\\u id=22)。协议(cookie)在此页面中设置。
在里面page_id=22(page-22.php)
<script type = "text/javascript">
function yesbutton()
{
setCookie("agreement", "yes", 5);
window.location.assign(getCookie("requested_url"));
}
</script>
<div class="agreementButton">
<input type = "button" onclick = "yesbutton()" value = "Accept">
</div>
在翻遍代码后,我发现
header.php
未正确访问协议的值。
第22页。phpsetCookie("agreement", "yes", 5);
工作正常。我可以在这里发出警报并获取其值(是)。
但当我在header.php
它会提醒空白区域。在标题中。php此代码返回一个空白弹出窗口。
var agreement = getCookie("agreement");
alert(agreement);
这显然意味着将cookie(协议)设置为
yes
在里面
page-22.php
未在中访问
header.php
正确地但我不知道为什么会这样。奇怪的是当永久链接
default 一、一切正常。一旦permalink设置为
postname, cookie(协议)在中变为空白
header.php
.
更新:两个标头中都存在setCookie和getCookie函数。php和第22页。php。
function setCookie(cname, cvalue, exdays) {
var d = new Date();
d.setTime(d.getTime() + (exdays*24*60*60*1000));
var expires = "expires="+d.toGMTString();
document.cookie = cname + "=" + cvalue + "; " + expires;
}
function getCookie(cname) {
var name = cname + "=";
var ca = document.cookie.split(\';\');
for(var i=0; i<ca.length; i++) {
var c = ca[i];
while (c.charAt(0)==\' \') c = c.substring(1);
if (c.indexOf(name) != -1) return c.substring(name.length, c.length);
}
return "";
}
这两个函数在两个页面中都运行良好。
问题是:
setCookie("agreement", "yes", 5);
that is done in page-22.php sets cookie correctly.
但当在标头中访问相同的cookie时。php与
var agreement = getCookie("agreement");
the value of agreement is blank.
alert(agreement) returns blank space.
欢迎提供任何线索/提示。