2014-05-01 73 views
0

无法获取Cookie过期设置无法获取Cookie过期设置

我使用PHP来设置一个WordPress站点一个cookie,但有一点难度的内容每次都显示出来该页面被加载,而不是仅在用户第一次访问该站点时显示(每天过期一次)。

原谅我,如果这是显而易见的,我还在学习;)

这里的功能,我有这个在我的functions.php页面:

function set_newuser_cookie() { 
    if (!is_admin() && !isset($_COOKIE['jtc_newvisitor'])) { 
     setcookie('jtc_newvisitor', 1, time()+60*60*24, COOKIEPATH, COOKIE_DOMAIN, false); 
    } 
} 
add_action('init', 'set_newuser_cookie'); 

这里是我如何打电话它:

<?php if (isset($_COOKIE['jtc_newvisitor'])) { ?> 
    <div id="modal-notices">content</div> 
<?php } else { } ?> 

,这里是我的js,我使用的有内容显示在页面加载时:

$(window).load(function(){ 
    $('#modal-notices').modal('show'); 
}); 

如果用户第一次在24小时内访问该页面,我想要加载内容,但是到目前为止,它只是每次加载。

如果任何人都可以在这里指出我正确的方向或解释我做错了什么,将不胜感激。

谢谢!

+0

您是否检查过以确保cookie被设置?我也不清楚你想要的结果是什么。你是否想要ID为'modal-notices'的div只在第一次访问时输出,或者在第二次访问时输出? – vvanasten

+0

谢谢@vvanasten我希望表单只能在第一次显示。我该如何去查看cookie是否已设置? –

+0

检查cookie在每个浏览器上都不同,[请尝试此资源](http://kb.iu.edu/data/ajfi.html)。它看起来像只在存在cookie时显示'modal-notices' div('if(isset($ _ COOKIE ['jtc_newvisitor']))')。尝试将'isset'更改为'!isset'。 – vvanasten

回答

0

它看起来像你正在检查cookie是否设置,而不是如果它没有设置。试试这个作为您的if声明:

if (!isset($_COOKIE['jtc_newvisitor']))