2011-03-09 79 views
0

我有四個文件。Smarty Sesssion變量問題

1. index.php 
2. index.tpl 
3. file2.php 
4. file2.tp 

我設置一個會話變量中的index.php這樣

$_SESSION['isVisible'] = true; 

然後我在file2.php訪問此變量這樣

echo ($_SESSION['isVisible']); 

,但它不工作。

我沒有手動啓動會話,因爲我認爲會話已經由Smarty啓動。

任何想法如何訪問此變量?

回答

1

這裏有一個小片段,幫助你,如果一個會話已啓動或檢測不,

不要忘記,以及與在session_start初始化會話將只提供給網頁頁面的目錄樹中首先創造它。

這可以解釋爲什麼Smarty使用另一個SESSION_ID比當前的腳本...

function session_is_started() { 
    if (isset($_SESSION)) { 
     return true; 
    } else { 
     return false; 
    } 
} 

if (!session_is_started()){ 
    session_start(); 
    $_SESSION['isVisible'] = true; 
} 

echo $_SESSION['isVisible']; 
+0

警告:在session_start()[function.session啓動]:打開()失敗:沒有這樣的文件或目錄(2 )在上線的index.php 17 警告:在session_start()[function.session啓動]:不能發送會話cookie - 頭已經發出(輸出開始的index.php:17)的index.php上線17 警告:在session_start()[function.session啓動]:無法發送會話緩存限制器 - 已經發送了頭(輸出開始的index.php:17)的index.php上線17 – qwera 2011-03-09 09:03:25

+0

@Zahid顯示ü第17行左右的index.php以及開始會話的文件。你需要在index.php的第17行之前運行session_start代碼,但是沒有看到文件,我不知道你應該把它放在哪裏。 – Belinda 2011-03-09 09:41:49

+0

只是在檢查會話時使用isset($ _ SESSION)而不是爲此創建函數更簡單嗎? – AntonioCS 2011-03-09 10:54:11