在PHP中设置/检查cookie时出现问题

在PHP中设置/检查cookie时出现问题,php,cookies,Php,Cookies,我有一个小的基本网站,用户只有在登录后才能查看某些页面。只有1个用户名和密码,因为该网站只供少数人使用,安全性不是主要问题。无论如何,当用户键入正确的用户名和密码并提交时,代码中会设置一个cookie并重新加载页面。但它仍然显示内容,就好像用户没有登录一样。当我再次按下sumbit按钮或单击另一页时,内容显示正确(导航栏中有更多项目)。我不明白为什么它不会第一次显示这些项目 登录页面顶部: if (isset($_POST['reg'])){ if ($form_errors =

我有一个小的基本网站,用户只有在登录后才能查看某些页面。只有1个用户名和密码,因为该网站只供少数人使用,安全性不是主要问题。无论如何,当用户键入正确的用户名和密码并提交时,代码中会设置一个cookie并重新加载页面。但它仍然显示内容,就好像用户没有登录一样。当我再次按下sumbit按钮或单击另一页时,内容显示正确(导航栏中有更多项目)。我不明白为什么它不会第一次显示这些项目

登录页面顶部:

    if (isset($_POST['reg'])){
    if ($form_errors = validate_form()) {
        show_form($form_errors);
    } else {
        logon();
    }
} else {
   show_form();
}
页面内容(功能显示表单)

因此,cookie被设置,show_form函数被调用,但仍然显示表单,而不是echo“you now logging”。当我切换页面或再次点击提交按钮时,将显示回显。为什么它第一次不这么做

请帮忙

他们说:

Cookie只有在 下一次加载 cookie应该是可见的。检验 如果成功设置了cookie, 在下次加载时检查cookie 在cookie过期之前返回页面。到期 时间通过expire参数设置。 一种很好的调试 cookies只需打电话就可以了 打印_r($_COOKIE)

设置cookie后,您应该重新加载页面,您可以使用
header('位置:http://someurl');模具()

说:

Cookie只有在 下一次加载 cookie应该是可见的。检验 如果成功设置了cookie, 在下次加载时检查cookie 在cookie过期之前返回页面。到期 时间通过expire参数设置。 一种很好的调试 cookies只需打电话就可以了 打印_r($_COOKIE)


设置cookie后,您应该重新加载页面,您可以使用
header('位置:http://someurl');模具()

登录完成后,使用header函数手动刷新页面即可。设置cookie后,只能在下一页重新加载时访问它


请参阅。

登录完成后,使用header功能手动刷新页面即可。设置cookie后,只能在下一页重新加载时访问它


查看。

我希望您已经完成了一些调试,如果没有,可以
打印您的
$\u COOKIE
值并查看您得到了什么?可能的重复我希望您已经完成了一些调试,如果没有,可以
打印您的
$\u COOKIE
值并查看您得到了什么?可能的重复
    <?php
    if( isset($_COOKIE['logedon'])){
        echo '<p>You are now logged on</p>';
        }
    else{
          //shows form containing: <input type="hidden" name="reg" value="1"/>
    }
?>
function logon(){
$expire= 60 * 60 * 24 * 10000 + time(); 
setcookie('logedon', true, $expire); 
show_form();
}