Php 登录时获取会话ID
我有一个会话登录系统的脚本。在用户日志之后,我存储用户ID、名称和级别Php 登录时获取会话ID,php,Php,我有一个会话登录系统的脚本。在用户日志之后,我存储用户ID、名称和级别 if (!isset($_SESSION)) session_start(); $_SESSION['user_id'] = $result['user_id']; $_SESSION['user_name'] = $result['user_name']; $_SESSION['user_level'] = $result['user_level']; // Redirect header("Locat
if (!isset($_SESSION)) session_start();
$_SESSION['user_id'] = $result['user_id'];
$_SESSION['user_name'] = $result['user_name'];
$_SESSION['user_level'] = $result['user_level'];
// Redirect
header("Location: dashboard.php"); exit;
现在,我需要在同一台服务器上安装第二个脚本
剧本
脚本B
如果用户登录SCRIPTA并将URL更改为SCRIPTB,我将无法登录o B安装
解决此问题的一种方法是为每个会话添加唯一的ID
但是如何在页面之间转发和检查ID?您可能不会尝试
if (!isset($_SESSION))
{
session_start();
$_SESSION['user_id'] = $result['user_id'];
$_SESSION['user_name'] = $result['user_name'];
$_SESSION['user_level'] = $result['user_level'];
}
- 创建一个包含上述内容的新php文件
- 在需要会话数据的每个页面中包含此文件
// Verify hash
$result = mysql_query("SELECT user_hash FROM users WHERE user_id =".$_SESSION['user_id']);
$row = mysql_fetch_array($result, MYSQL_BOTH);
$user_hash = $row['user_hash'];
比较哈希:
if ($_SESSION['user_hash'] != $user_hash) {
header("Location: index.php?error=1"); exit;
}
我不明白,你为什么不直接使用这个会话?!不,我指的是会议。或者会话Id是的,随便什么。我只是不明白你的用例是什么。。你们到底在做什么?实际上在保护页面上我只检查用户级别。也许我需要添加sessionID并用Cookie检查这个?你想做什么?您可能需要另一个
会话
变量来定义上述所有内容。例如,如果试图按用户id对帐户进行排序,则设置会话变量$\u session['account']
。然后,根据该id设置一个要重定向的页面;作为$_会话[];仅在创建它的页面上可用。