PHP为网站的每个页面验证用户

时间:2013-09-02 04:53:31

标签: php authentication login

我正在开发一个网站,在大多数网页中,用户需要登录才能查看网站页面。检查用户是否登录的最佳方法是什么,如果没有将其重定向到登录页面。

目前我正在使用以下代码来执行此操作。

if(!isset($_SESSION["username"]))   //I set the session when user log in and destroy when user logout
    header("location: login.php");

有很多页面,我把这个代码放在每一页。它也运作良好。

我想知道还有其他任何方法吗?或者我正在做的是好方法?而且我不需要改变任何东西。

3 个答案:

答案 0 :(得分:2)

Simple Solution创建一个名为session.php

的文件

将您的会话检查代码包含在其中。像,

if(!isset($_SESSION['YOUR_VAR'])) {
    header('Location: login.php');
}

使用includerequire

将此文件包含在您的所有网页中

我更喜欢要求功能。在页面开头写的home.php文件中的示例,

<?php
    session_start(); //don't forget to do this
    require('session.php');
?>
  

注意:将来如果您只是增强会话检查代码   必须改变一个文件。

答案 1 :(得分:0)

我通常只需在用户登录后设置这样的会话:

$_SESSION['loggedIn'] = TRUE;

然后只需在需要时检查TRUEFALSE

例如:

if($_SESSION['loggedIn']){
    //Something here
} else{
    //Don't do it
}

答案 2 :(得分:0)

这取决于你的架构。如果您使用任何框架,例如symfony,则不需要为每个页面处理这些框架。我猜你使用纯PHP而没有任何框架支持。因此,您需要检查用户是否针对您自己的每个请求进行了身份验证。我建议你不要在每个页面中放置与注销相关的代码段,只需将它放在一个全局函数中并在每个页面中调用它。因此,如果您希望在该代码段中进行任何简单更改,则只能更改该全局函数