检查用户是否已登录并使页面无法访问

时间:2016-06-01 12:16:58

标签: php

检查用户是否已登录以及是否未使该页面无法访问的最佳方式是什么?

此代码需要使其完整且安全:

if (isset($_SESSION['USER_ID']))

4 个答案:

答案 0 :(得分:0)

杀死剧本

if (!isset($_SESSION['USER_ID']))
  die();

或打印友好留言,重定向到登录页面,或任何您认为合适的回复。只需在显示高级内容之前终止该页面。

答案 1 :(得分:0)

在登录页面添加

$_SESSION['user_id'] = $user['id'];

如果您未登录则无法访问的页面,请在顶部添加

include ("auth.php");

<强> auth.php

 <?php
session_start();
if(!$_SESSION['user_id']){
    header("location:index.php");   //page you want to redirect
}
?>

现在您可以在任何想要在未登录时无法访问的页面中添加auth.php ...

答案 2 :(得分:0)

首先,您需要 - 在任何页面输出之前(甚至是警告和错误):

session_start();

所以你的代码将完整如下:

session_start();

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

答案 3 :(得分:0)

如果USER_ID不能为空,最好也检查一下:

if (isset($_SESSION['USER_ID'] && $_SESSION['USER_ID'] != ''))

作为更复杂的登录检查的个人方法:在用户登录时生成随机令牌并将其存储在数据库中并放入额外的会话。然后通过数据库检查检查user_id会话名称和随机会话是否匹配在一起。这样可以防止会话和cookie名称中的任何类型的欺诈行为。

相关问题