2010-03-13 42 views
0

我在file1.php中存儲會話和全局變量。但是,當我嘗試從file2.php訪問這些文件時,我什麼也得不到。我使用的是PHP 5.1.6。php無法存儲任何_SESSION或_GLOBALS變量

$_SESSION['abc'] = $a; 
$GLOBALS['def'] = $b; 

任何想法?

在此先感謝。

+1

你有一個代碼示例?我可以猜測你錯過了一個開始會議。 – scunliffe 2010-03-13 00:51:47

+0

$ GLOBALS不會在頁面之間存儲變量。你想做什麼? – zneak 2010-03-13 00:52:21

+0

將您的代碼行縮進4個空格,以便在我將其編輯到上面時進行渲染。 – Erik 2010-03-13 00:55:52

回答

2
  • 您的瀏覽器中啓用Cookies?
  • 你是否記得在BOTH頁面的頂部調用session_start?
  • 您是否將會話變量存儲在$ _SESSION中?沒有別的東西會存儲。

關於您的編輯:存儲在$ GLOBALS中的變量只是該腳本的全局變量。您必須將值放入$ _SESSION才能跨頁面使用。

例子:

// Page 1 
session_start(); 
$_SESSION['abc'] = "hello world"; 
$GLOBALS['def'] = "More stuff."; 

// Page 2 
session_start(); 
echo $_SESSION['abc']; // prints 'hello world' 
echo $GLOBALS['def']; // is not defined. Globals aren't session variables. 
+0

是的,我在我的主機上啓用了Cookie 我在<?php標記 之後的兩個文件上調用了session_start我正在使用$ _SESSION ['abc'] = $ a語法來存儲會話變量 在開發我的應用程序時我的Windows機器可以正常工作,但使用PHP 5.3.0,但在運行PHP 5.1.6的Linux上失敗 – ebtesting 2010-03-13 01:01:16

+0

以上面的示例爲例,您確定$ a中有值嗎?嘗試給你的會話變量一個字符串值,比如'$ _SESSION ['abc'] ='hello''來查看它的會話失敗或其他。 – Erik 2010-03-13 01:08:52

+0

它可能是任何Apache/PHP配置問題? – ebtesting 2010-03-13 01:25:32