2009-05-29 59 views
1

我有multple許多文件包括一個到另一個像下面,如何在PHP中使用Session和Include語句?

File1包括在File2然後File2正在File3

現在我想從File1中定義一個session變量site_user_conutry然後我檢查File2,如果在會話變量中沒有任何值,那麼只有我包括File1.php

我在每個[年齡但仍然不工作?]中添加了session_start();

請告訴我如何讓會議在上述條件下工作。

回答

1

你是如何設置會話變量?你應該嘗試設置它像這樣:

$_SESSION['site_user_conutry'] = 'United-Kingdom'; 

你放置在session_start()在文檔的最頂端,或者至少你輸出之前的任何信息?

+0

是的,我按照您演示的方式宣佈了會話。並且我在每個頁面的頂部添加session_start()。 – Prashant 2009-05-31 07:08:25

2

在文件2

if ($_SESSION["site_user_country"] != null) 
{ 
    include_once(File3); 
} 
1

假設您包含具有代碼執行的文件,而不是函數。

包含File1並設置會話變量的代碼必須在第一次迭代時在File2上的代碼之前執行。

在接下來的迭代中,會話將爲您保存值。

要設置會話變量,請使用$ _SESSION全局數組。


$_SESSION["name"] = "value"; 
2

只在第一行代碼中執行session_start一次。

文檔說明: 從版本4.4.3開始,在會話已經啓動時調用session_start()會導致E_NOTICE級別的錯誤。另外,第二場會議開始將簡單地忽略

如果file1包含在file2中file2中的代碼在file1之前完成。所以,如果你在file1中聲明的東西可能不會在file2中看到(取決於代碼...),反正它不是現代化的PHP編程方式。 (請參閱oo和__autoload)