好的,我有一个关于php会话的完全noob问题:
我有3个(以及更多)php页面,我需要使用登录系统和会话来保护它们。现在,我将其包含在每个页面的顶部:
session_name('somename');
session_start();
if(!$_SESSION['user_loggedIn']){
header("location: login.php");
}
if (isset($_SESSION["timeout"])) {
$inactive = 900;
$sessionTTL = time() - $_SESSION["timeout"];
if ($sessionTTL > $inactive) {
session_destroy();
header("location: login.php");
}
}
问题:添加类似include session.php的内容是否正确;到每个php文件的顶部,ofc。 session.php只包含上面的代码。
答案 0 :(得分:1)
您不应该自己处理会话超时,您的网络服务器几乎肯定已经为您处理。您需要做的就是检查会话是否存在,并确保您在该会话中有登录信息。
另外,就“什么是正确的事情”而言 - 如果你需要在每个php文件的顶部,请记住使用“require_once”,因为如果你一遍又一遍地做同样的事情没有意义包括其他文件。此外,您可能只需要在您知道只需要安全用户的页面上执行此操作,而这些用户并不总是站点的每个页面。