PHP函数在重定向之前运行


PHP Function Running Before Redirect

在php脚本的顶部,我有一个方法可以检查用户凭据,如果他们的SESSION变量与我们预期的不匹配,则会通过标头("Location:.."(将其重定向到登录区域。

下面我有一个方法,可以检测查询字符串参数,然后相应地运行mysql命令:

//内部看门人

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

//在我的脚本中

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

重定向后使用exit;die;终止脚本。

if(!isset($_SESSION['ourprivatesessionvar'])) {
    header("Location: login.php");
    exit;
}
    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;
}