防止未经登录打开页面

Prevent opening page without login

我创建了一个网页(我们称根为 main.php)并决定在其上放置一个登录名(文件 index.php)。登录工作正常,但问题是这样的。如果我直接在浏览器中输入页面地址 (main.php),它就会打开。 有什么方法可以防止我不通过登录打开页面吗?

如果相关,这是登录代码:

<!DOCTYPE html>
<html >
   <head>
      <meta charset="UTF-8">
        <title>Login</title>
    <link rel="stylesheet" href="/css/style.css">   
   </head>

   <body>
       <div class="login_container">
             <div id="login-form">
                <h3>Login</h3>
                <fieldset>
                    <form action="checklogin.php" method="post">
                            <input name="username" type="text" required placeholder="Username">
                                <input name="password" type="password" required placeholder="*******">
                                <input type="submit" value="Login">
                    </form>
                </fieldset>
            </div> 
    </div>
 </body>
</html>

它指向:

<?php

ob_start();

    // Define $username and $password 
    $username=$_POST['username']; 
    $password=$_POST['password']; 

    $username = stripslashes($username);
    $password = stripslashes($password);
    $username = pg_escape_string($username);
    $password = pg_escape_string($password);

if($username == "username" && $password == "password"){
        $_SESSION['username']="username";
        $_SESSION['password']="password";
        header("location:main.php");
}
else header("location:index.php");
ob_end_flush();
?>

您需要在每个需要登录的请求中检查用户是否已登录并获得授权。

查看此内容的一个好方法是将请求 URL 视为程序输入的一部分。就像输入cookie和GET/POST参数一样。

main.php 将 return 包含数据的页面或登录请求。

当然可以。 使用 php sessions 检查用户当前是否已登录