【发布时间】:2012-05-25 17:15:58
【问题描述】:
我有一个控制器/controller.php 文件,它启动一个会话并设置一些会话变量。然后我“包含”一个 model/model.php 文件并调用一个函数来加载它。
当我尝试在 model.php 文件中使用 controller.php 文件中的会话变量时,我得到很多:未定义变量:_SESSION 错误。
下面是在 controller.php 文件中设置会话变量的示例:
$_SESSION['userName'] = 'some data'
在 model.php 文件中,我试图通过以下代码检索它:
print($_SESSION['userName']);
我做错了什么?
编辑
我的controller.php文件代码:
<?PHP
session_start();
if (isset($_POST['Login'])) {
$_SESSION['pointsForQuestion'] = '1';
$_SESSION['userName'] = $_POST['txtUsername'];
if(!is_file($_SESSION['userName'].".txt"))
{
writeUserDetails($_SESSION['userName'],"1","0");
$_SESSION['currentLevel'] = "1";
$_SESSION['score'] = "0";
} else {
readUserDetails($_SESSION['userName']);
}
print('logged in');
include('../model/model.php');
print page_load();
}
function writeUserDetails($username,$level,$score) {
$fh = fopen($username.".txt", 'w') or die("can't open file");
fwrite($fh, $level.",".$score);
fclose($fh);
}
function readUserDetails($username) {
$userDetails = explode(',', file_get_contents($username.".txt"));
$_SESSION['currentLevel'] = $userDetails[0];
$_SESSION['score'] = $userDetails[1];
}
?>
【问题讨论】:
-
你在任何地方都做过
unset($_SESSION)吗? -
所以我们可以更好地帮助您,请向我们展示启动会话并设置会话变量的 controller/controller.php 文件?谢谢
-
已编辑 - 添加了 PHP 代码。我是否需要在 model.php 文件中添加会话开始/恢复类型的语句?
标签: php