gpt4 book ai didi

PHP:限制对最终页面的访问

转载 作者:行者123 更新时间:2023-11-28 16:21:08 25 4
gpt4 key购买 nike

我试图限制对 php 页面的访问。文件“calendario.php”应该只对之前通过“login.php”登录的用户可见

现在的问题是:如果用户在浏览器中手动输入url,他可以直接访问而无需凭据。我设法用“如果”来阻止这种情况,但即便如此。页面会加载内容一会儿,所以如果你足够熟练,你可以在准确的时刻暂停浏览器并访问信息。

这是我到目前为止尝试过的:

登录.php

<?php
include("required/datos.php");
session_start();

if($_SERVER["REQUEST_METHOD"] == "POST") {

$myusername = mysqli_real_escape_string($db,$_POST['login']);
$mypassword = mysqli_real_escape_string($db,$_POST['password']);

$sql = "SELECT * FROM usuarios WHERE login = '$myusername' and BINARY password = '$mypassword'";
$result = mysqli_query($db,$sql);
$row = mysqli_fetch_array($result,MYSQLI_ASSOC);


$count = mysqli_num_rows($result);


if($count == 1) {
$_SESSION['login_user'] = $myusername;
$_SESSION['autorizado'] = TRUE;
header('location: calendario.php');

}else {

$message = "Credenciales incorrectas";
echo "<script type='text/javascript'>alert('$message');</script>";
header('Refresh: 0; URL=index.php');


}
}
?>

日历.php

<?php

require_once('required/bdd.php');
session_start();
?>

<?php
if($_SESSION['autorizado']==true)
{

echo '<li class="active" style="padding-left: 15px">';
echo $_SESSION["login_user"];
echo ' - ';
echo '<a href="logout.php"><span>Desconectar</span></a></li>';
}
else
{
header('Refresh: 0; URL=index.php');
}

?>

<?php

$sql = "SELECT id, title, start, end, color FROM events ";

$req = $bdd->prepare($sql);
$req->execute();

$events = $req->fetchAll();


?>

我想知道您对如何改进这一点的看法。谢谢。

最佳答案

  1. 使用带有 Location header 的正确重定向
  2. 如果他们未被授权查看,请不要输出内容。在脚本到达生成内容的部分之前停止脚本。

这样的:

{
header('Location: index.php');
exit;
}

关于PHP:限制对最终页面的访问,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51705309/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com