PHP - 如果没有重定向,检查多个变量是否存在$ _SESSION

时间:2014-08-22 21:09:25

标签: php session

我有以下PHP代码:

if(!isset($_SESSION)) {
    session_destroy();
    header('Location: register.php'); //redirect to the orginal form
} else {
    $businessOwnerID = $_SESSION['business_owner_id']; //The Business owner ID
    $mobileValidation = $_SESSION['mobile_validation'];
}

我不知道为什么它没有重定向到register.php

我尝试通过session_destroy()来销毁所有会话;但它也无效

2 个答案:

答案 0 :(得分:5)

因为你显然不想确定是否有会话(几乎总会有)但是如果设置了特定的会话属性,你应该这样做:

if(!isset($_SESSION['business_owner_id'], $_SESSION['mobile_validation']))
{
   session_destroy();
   header('Location: register.php'); //redirect to the original form
} 
...

答案 1 :(得分:0)

调用$_SESSION后,session_start()超级全局将始终设置。

相反,您应该检查是否设置了特定值:

if(!isset($_SESSION['business_owner_id'])) {
    session_destroy();
    header('Location: register.php'); //redirect to the orginal form
} else {
    $businessOwnerID = $_SESSION['business_owner_id']; //The Business owner ID
    $mobileValidation = $_SESSION['mobile_validation'];
}