2012-12-26 41 views
0

我有這樣的代碼如何讓一個計數器在多個請求中工作?

   if (empty($sid)) { 
        $sid = 0; 
       } else { 
        $sid++; 
       } 

       $_SESSION['words'][$sid] = $try; 

$ SID腳本無處設置。

當我加載該頁面$ sid的值保持在0.它應該增加。 我真的很感謝一些幫助。

+0

您必須將sid值保存在cookie或會話中,並使用該值來檢查.. :) –

+0

當頁面加載時它會進入如果條件接收。因爲它獲得$ sid變量blank.So在頁面頂部聲明變量並檢查它 – Hkachhia

+0

以下是文檔的說明:「如果var存在並且具有非空非零值,則空將返回FALSE,否則返回TRUE。」在你的情況下,因爲$ sid不存在,所以'empty($ sid)'將總是返回TRUE並執行你的'if'條件的第一部分,即'$ sid = 0;' –

回答

2

請求之間不保留局部變量。您也可以在會話中保存$sid

  $sid = $_SESSION['sid']; 
      if (empty($sid)) { 
       $sid = 0; 
      } else { 
       $sid++; 
      } 
      $_SESSION['sid'] = $sid; 
      $_SESSION['words'][$sid] = $try; 
+0

只要會話生效,這將工作。如果你想讓這個計數器更持久,把它存儲在更永久的地方,比如數據庫。 – markus

+0

謝謝你的解決方案..我沒有想到的;) – Axxess

+0

:)哦,會對不起,必須忘記點擊:) – Axxess

0

局部變量不像會話或cookie,它們在頁面重新加載時(每次往返)都會重置。

使用會話或cookie來存儲$sid值。

+0

我的回答有什麼問題?爲什麼我會倒下? – gamehelp16

+0

我還沒有投票,但這必須是評論,而不是回答。 –

+0

只是一個答案還不夠,它有很多語法/拼寫錯誤。 – markus

0

您需要保存在會話cookie的或的sid值,那麼你可以檢查這樣的:

嘗試使用isset

$sid = $_SESSION['sid']; OR 
$sid = $_COOKIE['sid']; 

if (isset($sid)) { 
     $sid = 0; 
} else { 
     $sid++; 
} 

$_SESSION['sid'] = $sid; 
$_SESSION['words'][$sid] = $try; 

希望它會幫助你。

+0

爲什麼Negavite ...? – Sky

+0

我們一樣,我們得到了一個迴應 – gamehelp16

+0

您的解決方案將無法正常工作。你瞭解這個問題嗎? –

相關問題