我正在开发一个网站,在大多数网页中,用户需要登录才能查看网站页面。检查用户是否登录的最佳方法是什么,如果没有将其重定向到登录页面。
目前我正在使用以下代码来执行此操作。
if(!isset($_SESSION["username"])) //I set the session when user log in and destroy when user logout
header("location: login.php");
有很多页面,我把这个代码放在每一页。它也运作良好。
我想知道还有其他任何方法吗?或者我正在做的是好方法?而且我不需要改变任何东西。
答案 0 :(得分:2)
Simple Solution创建一个名为session.php
将您的会话检查代码包含在其中。像,
if(!isset($_SESSION['YOUR_VAR'])) {
header('Location: login.php');
}
使用include
或require
我更喜欢要求功能。在页面开头写的home.php文件中的示例,
<?php
session_start(); //don't forget to do this
require('session.php');
?>
注意:将来如果您只是增强会话检查代码 必须改变一个文件。
答案 1 :(得分:0)
我通常只需在用户登录后设置这样的会话:
$_SESSION['loggedIn'] = TRUE;
然后只需在需要时检查TRUE
或FALSE
。
例如:
if($_SESSION['loggedIn']){
//Something here
} else{
//Don't do it
}
答案 2 :(得分:0)
这取决于你的架构。如果您使用任何框架,例如symfony,则不需要为每个页面处理这些框架。我猜你使用纯PHP而没有任何框架支持。因此,您需要检查用户是否针对您自己的每个请求进行了身份验证。我建议你不要在每个页面中放置与注销相关的代码段,只需将它放在一个全局函数中并在每个页面中调用它。因此,如果您希望在该代码段中进行任何简单更改,则只能更改该全局函数