PHP会话工作缓慢


PHP Session Works Slowly

我最近开始学习PHP Sessions。这真的帮助我正确地登录。

我应该先给你链接:mk-appform.net16.net/login.php(feel免费使用,你想要的,这是一个测试。我可以更改通行证一旦它得到修复)用户名:admin密码:1234请测试一下

问题是,当你没有登录并直接在地址栏中输入mk-appform.net16.net/advsearch.php时,我要求事先登录的页面内容可以看到一秒钟。然后重定向到登录页面。但你知道,我不希望以任何方式展示这个。最终应该需要登录。

login.php的PHP代码

<?php
   if (isset($_POST['submit']))
   {
     if(isset($_POST['user']) && isset($_POST['password'])) 
     {
         $user = $_POST['user'];
         $password = $_POST['password'];
         if(empty($user) || empty($password)) 
         {
           echo 'Please fill the form';
         } 
         else 
         {
         if($user == 'admin' && $password == '1234') 
          { // check the infos
            session_start();
           $_SESSION['user'] = 'admin';
           $_SESSION['password'] = '1234';
           echo 'Login Succeeded.Now redirecting to panel...';
          header("refresh:2; url=advsearch.php");
         } 
    else 
    {      
          echo 'Invalid Username or Password';
    }
   }
  }

   else 
   {
       echo 'Please use the form';
   }
   }
?>

,成功登录后显示的内容代码(advsearch.php)

<?php
 session_start(); 
 if(isset($_SESSION['user']) && isset($_SESSION['password']))  
    { 
       if($_SESSION['user'] == 'admin' && $_SESSION['password'] == '1234') 
        {
           header("url=advsearch.php");
        } 
       else 
        {
           session_destroy(); 
           echo 'Redirecting..';
        }
    } 
  else 
    { 
           header("refresh:0; url=login.php");
    }

?>

header重定向不是即时的。浏览器需要一些时间来关闭连接并启动新连接。这意味着在输出位置标头后,您在页面上输出的任何内容仍然可以查看。您必须在输出标题后中止脚本。例如

<?php
if (need to redirect) {
    header('Location: login.php');
    echo 'redirecting to login page, please wait ...';
    exit(); // you need this
}
... regular page contents ...

简而言之,如果你不想让某些东西对用户可见,那么首先不要输出它。不要指望每件事都能正常工作(甚至是快速工作)。他们很少这样做。