编辑:我的不好,它是(服务器端)缓存问题。谢谢你的帮助。
我有一个网站,当访问时首先检查cookie“介绍”,然后如果它不存在,将其重定向到介绍页面。
<?php if (!isset($_COOKIE["intro"])) {
header( 'Location: http://explainasterisk.com/intro/' ) ; } ?>
当用户点击介绍页面上的“开始”按钮时,使用以下命令设置cookie:
<script type="text/javascript">
$(document).ready(function () {
$('.home').click(function () {
scroll(0, 0); //scrolltotop
var intro = "intro" //setting cookiename variable
var today = new Date();
var expire = new Date();
expire.setTime(today.getTime() + 3600000*24*365);
document.cookie = intro+"=1"
+ ";expires="+expire.toGMTString();
$('.home').slideUp(3000, function () { //slideUp function
//Nothing
});
});
});
</script>
在Opera和Chrome中正在设置cookie,但是当我点击介绍页面上的跳过按钮(将我带回原始页面)时,我只是被重定向到简介页面。你可以在这里看到这个:http://explainasterisk.com/
答案 0 :(得分:0)
if (!isset($_cookie["intro"])) {
是不正确的数组名称。它应该在CAPS中,就像这样
if (!isset($_COOKIE["intro"])) {
参考:$_COOKIE
感谢Brad Christie。
答案 1 :(得分:0)
问题的根源是您的代码开头没有error_reporting(E_ALL);
(以及开发环境中的ini_set('display_errors','On');
)。
如果你有,PHP会显示错误消息,表明没有$ _cookie变量。
答案 2 :(得分:0)
您可能想尝试jquery-cookie,因为它可以让javascript中的Cookie设置和处理过期更加容易。
一句简单的话:
$.cookie("[cooke name]", "[value]", { expires: [time in days]);
e.g:
$.cookie("intro", "set", { expires: 365);
您的PHP代码段对我来说很好看 - 如果Cookie设置正确 - 应该有效。
答案 3 :(得分:0)
尝试将路径和域添加到Cookie的末尾:
path=/; domain=.<?php echo $_SERVER['HTTP_HOST']; ?>
答案 4 :(得分:0)
javascript中的Cookie正在使用域.explainasterisk.com
所以在阅读cookie之前先试试这个。
ini_set("session.cookie_domain", ".explainasterisk.com");