我有一个非常困惑的问题,即在文件的顶部,我调用了一个外部函数“ sessionTest”,该函数测试各种会话条件并返回正确的头字符串。这是必要的,因为我有两个不同的标题:一个用于登录的用户,一个用于非用户/注销的用户。
我的问题在以下代码中:
...Rest of Page...
由于某种原因,isset($ _ SESSION ['logged'])在这里返回false,但在sessionTest中为true:
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; }
标头字符串设置为lheader.html,因此isset($ _ SESSION ['logged'])在此处返回true。有谁知道为什么?
提前致谢!
你需要把 session_start();
<?php -> session_start(); include './session.php'; include './db.php'; $con = genCon(); if(isset($_SESSION['logged'])){ echo "Logged: ".$_SESSION['logged']; } $headerstring = sessionTest($con); ?>