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");
}
- 仅在登录 中创建用户名或用户ID会话
- 如果未将重定向设置为登录或您要重定向的任何地方
检查
在每个页面中设置$_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);
}