2012-09-22 47 views
0

我正在嘗試製作一個程序,該程序會接收用戶最喜歡的電影名稱並將其打印回來。默認最愛設置爲Godfather

我還附加了一個基於會話變量的HIT計數器,但它不工作。每次頁面加載時它都會顯示爲「零」。這裏是我的代碼:

<?php 
session_start(); 

if(!isset($_SESSION['count'])) 
    $_SESSION['count'] = 0; 
else 
    $_SESSION['count']++; 

if (!isset($_SESSION['movie'])) 
     $_SESSION['movie'] = "THE GODFATHER"; 

if(isset($_POST['submit'])) 
    $_SESSION['movie'] = $_REQUEST['moviename']; 
?> 

<form method='POST' action="index.php"> 
Please Enter your Favourite Movie 
<input type="text" name='moviename' /> 
<input type="submit" name='submit' value='set movie' /> 
</form> 

<br /><br /> 
Your Current Favourite Movie is <?php echo "called ", $_SESSION['movie'] ,"."; ?> 
<br /><br /> 
<?php echo "You Have Viewed this page ", $_SESSION['count'], " times."; ?> 

你會得到YOU HAVE VIEWED THIS PAGE 0 TIMES,無論多少次的頁面已經被加載。

+1

有你在'<?php'之前有空格嗎?並檢查你的文件的編碼。如果你有帶BOM的UTF-8,將文件轉換爲UTF-8,無需BOM – Ozerich

+1

我只是將你的代碼複製並粘貼到一個文件中,並將其運行到我的本地主機,它工作正常。這個問題一定不能用這個代碼。 –

+0

如果關閉瀏覽器,您將失去會話。當刷新頁面計數器仍然不增加? –

回答

3

嘗試echo session_id();並確保它不會更改。

如果確實發生了變化,那麼您尚未正確配置會話。檢查相關的php.ini設置,特別是確保保存路徑存在。

+1

這個。這聽起來好像會話在客戶端沒有被正確初始化,這意味着cookie不能被設置或者其他任何東西。 –

+0

我剛剛做到了這一點,我注意到我的session_id();正在改變......我該如何解決這個問題? –

0
  1. 檢查您的編碼,也許文件中有UTF 與BOM,將文件轉換爲UTF-8無BOM
  2. 檢查文件的第一行,也許<?php沒有對一號線
+0

我很興奮,只有UTF-8。 –