0

ローカル サーバーでは完全に機能しているコードがありますが、ライブ サーバーでは機能しません。

私のローカル サーバーは WAMP ですが、ライブ サーバーは LiteSpeed、PHP、および MySQL を使用した Unix です。

問題は、セッションが存在しない場合にのみ新しいセッションを作成することです。誰でもこれを手伝ってもらえますか?

正確なコードは次のとおりです。

$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"];
}
4

4 に答える 4

3

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()

于 2012-08-16T14:43:39.843 に答える
0

これはどこでも機能するはずです:

if(empty($_SESSION["cart"])){
    $_SESSION["cart"] = rand(111111111,999999999);
    $cart = $_SESSION["cart"];
} else
    $cart = $_SESSION["cart"];
于 2012-08-16T14:41:56.120 に答える
0

セッションが開始されていることを確認し、元のカートが設定されているかどうかを確認してください。

session_start();
if(!isset($_SESSION['cart']))
{
    $_SESSION['cart']=rand(111111111,999999999);
}
于 2012-08-16T14:40:36.170 に答える
0

var_dump($cart)割り当てた直後に試して、結果を投稿してください。

$_Session[cart]割り当ててチェックする代わりに、チェックすることもできます。

于 2012-08-16T14:42:21.203 に答える