繁体   English   中英

PHP-如何限制对页面的访问?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM