我的index.php里面有一个登录页面,登录功能运行良好,但问题是对访客和管理员的限制,当我以用户或管理员身份登录时,他们会去那里受人尊敬的页面,但是当我尝试输入时guest.php或admin.php的url他们都可以访问它不应该访问它,我在这里想要发生的是当我以用户身份登录时,用户可以访问与访问者相同的访客页面.. < / p>
的index.php
<?php
include_once 'db.php';
if($userlevel->is_loggedin()!=""){
$userlevel->redirect('guest.php');
}
if(isset($_POST['submit'])){
$uname = $_POST['user'];
$upass = $_POST['pass'];
if($userlevel->login($uname,$upass)){
switch($_SESSION['user_level']) {
case "0": $userlevel->redirect('guest.php');
break;
case "1": $userlevel->redirect('admin.php');
break;
}
}
}
guest.php
<?php
include_once 'db.php';
if(!$userlevel->is_loggedin()){
$userlevel->redirect('index.php');
}
$ID = $_SESSION['user_session'];
$stmt = $DB_con->prepare("SELECT * FROM survey_section WHERE ID=:ID");
$stmt->execute(array(":ID"=>$ID));
$userRow=$stmt->fetch(PDO::FETCH_ASSOC);
?>
admin.php的
<?php
include_once 'db.php';
if(!$userlevel->is_loggedin()){
$userlevel->redirect('index.php');
}
$ID = $_SESSION['user_session'];
$stmt = $DB_con->prepare("SELECT * FROM survey_section WHERE ID=:ID");
$stmt->execute(array(":ID"=>$ID));
$userRow=$stmt->fetch(PDO::FETCH_ASSOC);
?>
我认为我的问题之一就在这里:
if($userlevel->is_loggedin()!=""){
$userlevel->redirect('guest.php');
}
因为你可以只重定向guest.php,但我不知道怎么把它变成wotk ..
答案 0 :(得分:1)
您可以检查guest.php和admin.php
中的权限因为您有一个名为user_level的会话变量,所以您可以在任何页面中获取它的值。这就是你要做的。
<强> guest.php 强>
<?php
include_once 'db.php';
if($_SESSION['user_level'] == "1"){
// it means admin
$userlevel->redirect('admin.php');
}
if(!$userlevel->is_loggedin()){
$userlevel->redirect('index.php');
}
$ID = $_SESSION['user_session'];
$stmt = $DB_con->prepare("SELECT * FROM survey_section WHERE ID=:ID");
$stmt->execute(array(":ID"=>$ID));
$userRow=$stmt->fetch(PDO::FETCH_ASSOC); ?>
与 admin.php
相同<?php
include_once 'db.php';
if($_SESSION['user_level'] == "0"){
// it means guest
$userlevel->redirect('guest.php');
}
if(!$userlevel->is_loggedin()){
$userlevel->redirect('index.php');
}
$ID = $_SESSION['user_session'];
$stmt = $DB_con->prepare("SELECT * FROM survey_section WHERE ID=:ID");
$stmt->execute(array(":ID"=>$ID));
$userRow=$stmt->fetch(PDO::FETCH_ASSOC);
?>