在php脚本的顶部,我有一个检查用户凭据的方法,以及他们的SESSION变量是否与我们期望通过标题重定向的相匹配("位置:。 。")到登录区域。
在此之下,我有一个方法可以检测查询字符串参数,然后相应地运行一个mysql命令:
// INSIDE GATEKEEPER
if(!isset($_SESSION['ourprivatesessionvar'])) { header("Location: login.php");
// INSIDE MY SCRIPT
include('includes/gatekeeper.php');
/** SOME OTHER STUFF **/
if(isset($_GET['delete'])) {
mysql_query("DELETE FROM table WHERE id = '".mysql_real_escape_string($_GET['delete'])."' LIMIT 1");
}
总而言之,无论是否满足会话配额,delete命令都在运行。
答案 0 :(得分:3)
重定向后使用exit;
或die;
终止脚本。
if(!isset($_SESSION['ourprivatesessionvar'])) {
header("Location: login.php");
exit;
}
答案 1 :(得分:1)
if(!isset($_SESSION['ourprivatesessionvar'])) {
header("Location: login.php");
die;
}
或
if(!isset($_SESSION['ourprivatesessionvar'])) {
header("Location: login.php");
return false;
}
或
if(!isset($_SESSION['ourprivatesessionvar'])) {
header("Location: login.php");
exit;
}