1
我有一個非常令人困惑的問題,即在我的文件頂部,我調用一個外部函數「sessionTest」,它測試各種會話條件並返回正確的頭字符串。這是必要的,因爲我有兩個不同的標題:一個用於登錄用戶,另一個用於非用戶/登出用戶。
我的問題是在下面的代碼:
<?php include './session.php';
include './db.php';
$con = genCon();
if(isset($_SESSION['logged'])){
echo "Logged: ".$_SESSION['logged'];
}
$headerstring = sessionTest($con); ?>
...Rest of Page...
出於某種原因,isset($ _ SESSION [ '記錄'])是返回false這裏,但真正在sessionTest:
function sessionTest($con){
session_start();
$fingerprint = md5($_SERVER['HTTP_USER_AGENT'].session_id());
if(isset($_SESSION['user']) && isset($_SESSION['logged']) && $_SESSION['logged']==TRUE){
$dbFingerprint = qGetUserFingerprint($_SESSION['user'],$con);
$fpMatch = ($dbFingerprint == $fingerprint);
//LEAVING OUT NON RELEVANT CODE
$headerstring = './lheader.html';
}else{
$headerstring = './header.html';
}
return $headerstring;
}
headertring被設置爲lheader.html,所以isset($ _ SESSION ['logged'])在這裏返回true。有沒有人有一個想法,爲什麼?
在此先感謝!
爲什麼要叫'在session_start()'的函數裏面? –