页面加载/重定向取决于用户会话/登录状态



i有一个页面,其中包含一个成员部分,该部分仅通过登录才能访问。当登录用户被转发到成员部分时,如果尝试访问成员部分而不登录用户,则将重定向到索引页面。

我想要的是使用户能够在所有页面中登录,并在顶部显示其用户名和注销选项。但是,默认情况下,下面的会话文件将始终重定向回索引:

<?php
session_start();
require_once 'user.php';
$session = new USER();
if(!$session->is_loggedin());
{
    // session no set redirects to login page
    $session->redirect('index.php');
}
    ?>

上面的所有页面都很好页面上的代码:

<?php
require_once("session.php");
require_once("user.php");
$auth_user = new USER();

$userid = $_SESSION['user_session'];
$stmt = $auth_user->runQuery("SELECT * FROM users WHERE userid=:userid");
$stmt->execute(array(":userid"=>$userid));
$userRow=$stmt->fetch(PDO::FETCH_ASSOC);
    ?>

这导致一个无尽的循环,使index.php页面不登录时无法访问,这对我来说很有意义。我想,无论是否登录,我都需要一个简单的条件来加载页面,或者会话文件中的异常,以免重定向特定页面(可在有或不带有登录的情况下访问的外部页面(。我尚未包含 user.php文件,因为这是有问题的唯一函数是:

    public function is_loggedin()
   {
      if(isset($_SESSION['user_session']))
      {
         return true;
      }
   }
   public function redirect($url)
   {
       header("Location: $url");
   }
  1. 仅在登录
  2. 中创建用户名或用户ID会话
  3. 如果未将重定向设置为登录或您要重定向的任何地方
  4. 检查$_SESSION["username"]是否仅通过

    在每个页面中设置

    if(!isset($ _ session [" username"](( { 重定向 }

无需重定向两种情况,也可以在需要时创建访客访问权限,或者您需要重定向

谢谢大家,我只是通过将会话开始启动到index.php并创建似乎对我有用的条件来解决与上述类似的解决方案。

session_start();
require_once("user.php");
$pageload = new USER();
if($pageload->is_loggedin()!="")
{   
$userid = $_SESSION['user_session'];
$stmt = $load->runQuery("SELECT * FROM users WHERE userid=:userid");
$stmt->execute(array(":userid"=>$userid));
$userRow=$stmt->fetch(PDO::FETCH_ASSOC);
}

最新更新