ISSET 在本地服务器上工作,但不在活动服务器上工作


isset working on local server but not working on live server

我有一个代码在我的本地服务器上运行良好,但在实时服务器上不起作用。

我的本地服务器是WAMP,而实时服务器是Unix,具有LiteSpeed,PHP和MySQL。

问题是我希望仅在不存在新会话时才创建新会话。请问任何人都可以帮忙吗?

确切的代码如下:

$cart = $_SESSION["cart"];
if (isset($cart))// this checks if session has been created already.
$cart = $cart; // if session is already set, it uses the random value already created.
else {
$_SESSION["cart"] = rand(111111111,999999999);// if session has not be created        before a new randome number is picked.
$cart = $_SESSION["cart"];
}

截至isset()正在检查是否设置变量,这里很明显:

$cart = $_SESSION["cart"]; // setting the variable $cart and assigning it some value
if (isset($cart)) // this checks if session has been created already
  // and it will return TRUE anyway because `$cart` is already defined above regardless value it was assigned

这部分代码不检查是否设置了$_SESSION['key'],而是检查$cart变量。这实际上已经设置好了。这里可以检查它是否is_null()empty(),但不能isset() .

这个应该在任何地方工作:

if(empty($_SESSION["cart"])){
    $_SESSION["cart"] = rand(111111111,999999999);
    $cart = $_SESSION["cart"];
} else
    $cart = $_SESSION["cart"];

确保会话已启动并检查是否设置了原始购物车。

session_start();
if(!isset($_SESSION['cart']))
{
    $_SESSION['cart']=rand(111111111,999999999);
}
分配

后立即尝试var_dump($cart)并发布结果。

您可能还希望检查$_Session[cart]而不是签名和检查,