2012-04-19 165 views
1

所以,我在處理PHP會話變量時遇到了一些問題。我有一個jQuery函數後變量的PHP文件(工作,見代碼在這裏):PHP會話變量和jQuery

$('#practiceid').blur(function() { 
    var practiceid = $(this).val(); 
    $.post("delicious.php", {"pid": practiceid}); 
    }); 

由於螢火蟲,我可以看到delicious.php接收變量。現在,在PHP文件的代碼是:

$_SESSION['uploaddir'] = $_POST['pid']; 

現在的問題是,當我嘗試使用會話變量在其他PHP文件它只是似乎並不存在。我已經在index.php文件中聲明瞭session_start();

任何想法?

非常感謝。

+5

'在session_start()賦值'不只是_initiate_會話。它在任何使用它的頁面上創建對會話的訪問權限,並且必須在讀取或寫入'$ _SESSION'的_every_腳本上調用。 – 2012-04-19 01:23:03

回答

5

您是否確定每頁上需要使用$ _SESSION成員的上調用session_start()?

+0

我試過了,它似乎沒有工作。無論如何,會議應該多次開始? – 2012-04-19 01:27:34

+2

@ user1342734:通過調用'session_start()'的方式,會話不是「開始」的。無論如何,會話都是活動的'session_start()'做的是允許腳本的其餘部分訪問會話。所以,是的,如果您在整個應用程序中依賴於會話狀態,則應該在每個請求的開始時調用它。 – David 2012-04-19 01:28:51

+0

我會再試一次。乾杯。 – 2012-04-19 01:30:12

0

session_start()需要寫在您使用會話值的每個頁面上。

另外,不要直接賦值給SESSION變量。使用: -

if(isset($SESSION['uploaddir'])){ 
unset($_SESSION['uploaddir']); 
} 
$_SESSION['uploaddir'] = $_POST['pid']; 

您使用可能會導致警告