【发布时间】:2012-01-11 02:32:47
【问题描述】:
我尝试了一个 session.php 脚本,该脚本在我网站的每个页面的开头运行,以验证用户在浏览网站之前是否已登录。但是,现在 process_login 脚本不会加载安全登录页面,它只是重新加载到登录页面。我相信我的安全会话设置不正确。有人可以进一步向我解释这是如何工作的吗?
这是脚本,process_login,当用户点击登录时执行:
<?php
// Initialize session
session_start();
// Require database connection settings
require('config.inc');
// Retrieve email and password from database
$email = mysql_real_escape_string($_POST['email']);
$password = mysql_real_escape_string(md5($_POST['password']));
$query = "SELECT * FROM $table WHERE email='$email' AND password='$password' LIMIT 1";
$result = mysql_query($query);
// Check email and password match
if(mysql_num_rows($result)) {
// Set email session variable
$_SESSION['email'] = $_POST['email'];
// Jump to secured page
header('Location: home.php');
}
else {
// Jump to login page
header('Location: index.php');
}
?>
这是 session.php 脚本,它位于需要用户登录的每个页面的头部:
<?php
if (isset($_SESSION['email']) == 0) {
// Redirect to login page
header('Location: index.php');
}
?>
【问题讨论】:
-
我们可以看看你尝试了什么吗?
-
你应该给我们看一些代码。
-
调用 process_login 脚本时,根据定义,用户尚未登录。因此您不应在 process_login 期间运行验证/重定向代码。
-
嘿伙计们 - 我让这个人在 SO 上发布他的问题,但他以前从未使用过它。我只是保证他是一个真正的人,有一个真正的问题,而不是一些无所事事的人:)
-
但是我们可以相信你@Jason 吗? :-)
标签: php security session cookies