PHP函数在重定向之前运行

时间:2015-08-11 19:15:56

标签: php mysql

在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命令都在运行。

2 个答案:

答案 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;
}