![](/img/trans.png)
[英]What is the best way to password protect folder/page using php without a db or username
[英]What is the best way to protect a PHP page?
我想在我的网站上实现一个登录系统,如果用户当前未登录,它将用户重定向到login.php。我目前正在使用这种方法:
<?php
start_session();
if (!isset(_SESSION['user_id']))
{
header('location:login.php');
exit();
}
$user_details = get_user_details_from_db(_SESSION['user_id']');
?>
<html lang="en">
<head> <meta http-equiv="content-type" content="text/html; charset=utf-8">
</head>
<body>
<p><?php echo "Welcome $user_details['name']?> You are in a protected area</p>
</body>
</html>
还是应该将整个内容封装在if的其他情况下,例如:
<?php
start_session();
if (isset(_SESSION['user_id']))
{
$user_details = get_user_details_from_db(_SESSION['user_id']');
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN""http://www.w3.org/TR/html4/loose.dtd">
<html lang="en">
<head> <meta http-equiv="content-type" content="text/html; charset=utf-8">
</head>
<body>
<p><?php echo "Welcome $user_details['name']?> You are in a protected area</p>
</body>
</html>
<?
}
else
{
header('location:login.php');
exit();
}
?>
我已经看到两种方法都在地方使用,所以想知道第一种方法是否有问题。
谢谢。
您可以同时使用两种方法。 第一个用于保护整个页面,第二个用于例如保护指向受保护页面的按钮或链接。
好吧,您可以同时使用两种方法。 您在第一个错误中会遇到的唯一错误是,您在第9行忘记了$。如果您确实想保护自己的网站,则应检查是否从会话中获得了ID用户信息。
我更喜欢第一种方法。 如果会话不正确,则重定向并结束执行,否则继续。 另外,您可以检查用户详细信息是否正确:
$user_details = get_user_details_from_db($_SESSION['user_id']);
if (!isset($user_details['name']) {
// redirect..
exit();
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.