[英]PHP- How can I restrict access to a page?
我有多个页面需要根据用户权限进行保护。 我有一个php在页面加载时检查当前会话变量。
正在测试的页面; php代码位于!DOCTYPE上方。 该代码用于检查未登录的客户。 如果未登录或未设置会话变量,则重定向到错误页面,否则不执行任何操作并正常加载页面
<?php
if (!isset($_SESSION["username"])){
header("location: error.php");
}
?>
我的会话变量仅在登录后设置,登录后将用户重定向到上述页面:
if (mysqli_num_rows($results6) < 1) { //$results6 is a query to check if the user exits in the users database
$logInMsg = "invalid log in";
} else {
session_start();
$_SESSION["username"] = $uName; //$uName is a user input user name
header("location: pageabove.php");
}
问题是,即使登录后,我仍然会重定向到错误页面
那是因为您还没有开始会话。 您需要在打算使用会话的每个页面上指定一个会话开始( 有关session_start()
更多信息 ):
<?php
session_start(); // start session
// do check
if (!isset($_SESSION["username"])) {
header("location: error.php");
exit; // prevent further execution, should there be more code that follows
}
这就是一切。 在您的登录页面和所有页面上。 您想在任何地方利用这些会话,都需要启动它,否则就“迷失了方向” 。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.