我有这个奇怪的问题,我终于意识到这是由于我确定用户是否登录的单个会话。 ($ _SESSION ['uID'])一切都运转正常,直到这个会话突然出现在我的一个文件中!我的意思是它仍然可以在我的本地主机上工作,但是当我试图在我的实际服务器上访问它时不行。
如果会话存储在某些文件中,我怀疑服务器可能存在问题,如果是这样,为什么会话在我的某个文件中不可用?
修改:问题是而不是session_start(),因为我已在我的文件中找到它。如果我在此会话中使用其他名称,则可以再次使用。
编辑2 :这家伙(这里:session wiped out between pages)似乎有同样的问题,但你可以看到他也没有得到答案。任何人吗?
编辑3 :以下是工作文件和有问题文件的示例:
会话uID在此文件中可用:
<?php
session_start();
if (!empty($_SESSION['username'])) { // USER Active - SESSION Active
$userLoggedIn = "1"; // login flag
$uID = $_SESSION['uID']; // here it returns a valid value
dbconnect();
// and the rest (this file works ok)
}
?>
并且在以下文件中不可用
<?php
// Jan 2012
session_start();
if (!empty($_SESSION['username'])) { // SESSION Active
$userLoggedIn = "1"; // login flag
$pID = ""; // initiating
$uID = "";
$NewStat = "1";
$pID = $_POST['pID'];
$uID = $_SESSION['uID']; // This is were it returns null!
// on direct use die
if (!$pID || !$uID || $pID == "" || $uID == "") die("ERROR 33");
require_once ("./functions.php");
dbconnect();
// Getting info from db and stuff...
echo $starFile;
} else {
die("ERROR sd23");
}
?>
答案 0 :(得分:0)
如果您未在该文件中调用session_start()
,则会发生这种情况。