2012-08-16 129 views
0

我有一個在我的本地服務器上完美工作的代碼,但在實時服務器上無法工作。isset在本地服務器上工作,但不在現場服務器上工作

我的本地服務器是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"]; 
} 
+1

你可以更具體一點關於它不工作 - 你的意思是'$ _SESSION [「cart」]'_is_設置,但是isset沒有選擇它;或者它沒有設置,isset告訴你它是? – andrewsi 2012-08-16 14:39:25

+0

我的意思是說,每次我重新加載頁面,$ cart的價值就會改變。它不應該。 – 2012-08-16 14:40:46

+0

@EhisAsibor你叫'session_start()'嗎?您的本地服務器可能啓用了'session.auto_start'。 – DaveRandom 2012-08-16 14:41:02

回答

0

這應該在任何地方工作:

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

我只是特里結構這一點,但它沒有工作:( – 2012-08-16 14:47:08

+0

這應該工作。它必須是別的東西。請出示更多的代碼和測試結果 – Waygood 2012-08-16 14:49:41

+0

它可以在本地主機上,而不是活的服務器上 – 2012-08-16 14:53:06

0

確保在會話開始,並檢查原車設置。

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

是會話開始,我有session_start();在頁面頂部,但我現在將測試您的修改。 – 2012-08-16 14:44:04

+0

同樣的問題,它適用於我的本地主機,但不在活動服務器上。 – 2012-08-16 14:52:48

0

嘗試var_dump($cart)你ASIGN併發布結果之後。

您可能還需要檢查$_Session[cart]代替asigning和檢查,

+0

它的$ _SESSION不$ _Session – Waygood 2012-08-16 14:43:57

+0

現在檢查這個..將很快發佈結果 – 2012-08-16 14:55:45

+0

沒有運氣同樣的問題......這可能是一個與活服務器配置的問題?因爲它在本地主機上完美工作 – 2012-08-16 15:00:22

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

+0

有太多人正在錯誤地使用isset()。這裏有一個蹩腳的網站教這個嗎? – Waygood 2012-08-16 14:47:47

+0

當然,這讓他寫道(與isset())的行爲是意想不到的。 – Maykonn 2012-08-16 14:49:29

相關問題