防止未经登录打开页面
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 检查用户当前是否已登录
我创建了一个网页(我们称根为 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 检查用户当前是否已登录