0

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

目前我正在使用以下代码来做到这一点。

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

有很多页面,我把这段代码放在每一页。它也很好用。

我想知道有没有其他的击球手方法可以做到这一点?还是我正在做的是好方法?我不需要改变任何东西。

4

3 回答 3

2

简单的解决方案是创建一个名为session.php

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

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

将此文件包含到您的所有页面中,使用includeORrequire

我更喜欢 require 函数。在页面开始写入的 home.php 文件中的示例,

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

注意:将来如果您增强会话检查代码,您只需更改一个文件。

于 2013-09-02T05:16:35.433 回答
0

一旦用户登录,我通常只设置这样的会话:

$_SESSION['loggedIn'] = TRUE;

然后只需检查是否TRUEFALSE何时需要。

前任:

if($_SESSION['loggedIn']){
    //Something here
} else{
    //Don't do it
}
于 2013-09-02T05:06:27.020 回答
0

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

于 2013-09-02T05:08:11.873 回答