2011-07-15 77 views
0

我不是一個PHP開發人員在這裏。會話變量不顯示在特定頁面上

我有一個頁面無法顯示會話值,即使它們確實存在。我能夠在另一個頁面上查看它們,但由於某種原因,它們無法在某個頁面上看到!?

編輯: 下面是在頁面的頂部存在這樣的腳本

<?php 
    require_once('eu_gl.php'); // <- includes session_start() in it 
    if(!session_id()) session_start(); // added this in case, but should not be needed 
?> 

的內容包括:

<?php 
/*** Global include file **/ 

set_time_limit(300); 
$time1 = microtime(); 

define('APP_SESS_NAME', 'EURA'); 
session_name(APP_SESS_NAME); 
session_start(); 
session_set_cookie_params(0); 
//... 
?> 
+1

在那個頁面上有'session_start()'嗎? – k102

+0

是的,它存在於使用require調用的包含文件中() – Chev

+0

沒有問題,但如果您不是PHP開發人員,那麼您爲什麼開發PHP? –

回答

0

似乎會議的命名是問題。 Tt被命名爲include:session_name(APP_SESS_NAME),那麼在其他地方啓動時似乎必須使用該會話名稱。

0

正如@ K102提到,確保你們面前session_start();某處設置/獲取你的會話變量。 print_r($_SESSION);也可以在顯示你有什麼存在的會話信息,方便...

我個人會修改代碼以有這樣的:

if (!isset($_SESSION)) session_start(); 

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

print_r($_SESSION); 
+0

session_start()存在於使用require()調用的包含文件中它們的值在那裏並被正確設置,只是無法在此頁面上查看它們。不同的是,在此頁面session_start()在包含文件中調用,似乎是問題? – Chev

+0

對不起,但我認爲這必須是一個評論,而不是一個答案 – k102

+0

啊,那麼你需要**張貼一些代碼** – sdolgy

0

第一點是: 最好嘗試

if(session_id() == "") session_start(); 

而不是

if(!session_id()) session_start(); 

as session_id將不會返回false。

PHP手冊:

SESSION_ID()返回會話ID爲當前會話或 空字符串( 「」),如果沒有當前會話(沒有當前會話 ID存在)。

二點是,在session_start應在頁面上的第一件事,除非你真的需要別人STHG,但我看不到你的代碼中的任何原因。

0

您必須製作2個php文件來檢查$ _SESSION,session用於存儲變量,因此您可以在您的網站的所有頁面中使用它。

test.php的:

set_time_limit(300); // Timeout for script 
$time1 = microtime(); // What this variable do in your script 
define('APP_SESS_NAME', 'EURA'); // set constant APP_SESS_NAME 
session_name(APP_SESS_NAME); // name session APP_SESS_NAME 
session_start(); // start session 
session_set_cookie_params(0); // this line must be called before session_start(); 

if(!session_id()) session_start(); // Delete this line 

$_SESSION['name']= "test"; // set variable session with params name for checking session 

test2.php:

define('APP_SESS_NAME', 'EURA'); // set constant APP_SESS_NAME 
session_name(APP_SESS_NAME); // name session APP_SESS_NAME 
session_start(); // start session 
echo $_SESSION['name']; // check session is valid 

我想你應該瞭解有關會話了。