Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/297.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP会话变量未结转_Php - Fatal编程技术网

PHP会话变量未结转

PHP会话变量未结转,php,Php,我有一个controller/controller.php文件,用于启动会话并设置一些会话变量。然后我“包括”一个model/model.php文件,并调用一个函数来加载它 当我尝试在model.php文件中使用controller.php文件中的会话变量时,我得到了许多:Undefined variable:\u会话错误 下面是在controller.php文件中设置会话变量的示例: $_SESSION['userName'] = 'some data' 在model.php文件中,我试图通

我有一个controller/controller.php文件,用于启动会话并设置一些会话变量。然后我“包括”一个model/model.php文件,并调用一个函数来加载它

当我尝试在model.php文件中使用controller.php文件中的会话变量时,我得到了许多:Undefined variable:\u会话错误

下面是在controller.php文件中设置会话变量的示例:

$_SESSION['userName'] = 'some data'
在model.php文件中,我试图通过以下代码检索它:

print($_SESSION['userName']);
我做错了什么

编辑

my 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];
}


?>

在顶部定义会话变量之前启动会话,即
会话_Start()

已编辑 您还没有为这些会话变量设置任何内容,这就是它给出错误的原因

$_SESSION['userName'];
$_SESSION['currentLevel'];
$_SESSION['score'];

如果您不想设置任何内容,可以删除这些会话变量…

在顶部定义会话变量之前启动会话,即
session\u Start()

已编辑 您还没有为这些会话变量设置任何内容,这就是它给出错误的原因

$_SESSION['userName'];
$_SESSION['currentLevel'];
$_SESSION['score'];

如果您不想设置任何内容,可以删除这些会话变量…

$\u会话在所有作用域中都是超全局的


因此,您一定忘了
会话\u start()

$\u会话在所有范围内都是超全局的


因此,您一定忘记了
session\u start()

您在任何地方都执行了
unset($\u session)
吗?因此,我们可以更好地帮助您向我们显示启动会话并设置会话变量的controller/controller.php文件?ThanksEDITED-添加了PHP代码。我是否需要model.php文件中的session start/resume类语句?您是否在任何地方执行了
unset($\u session)
操作?因此,我们可以更好地帮助您向我们展示启动会话并设置会话变量的controller/controller.php文件?ThanksEDITED-添加了PHP代码。我是否需要在model.php文件中使用session start/resume之类的语句?我在if(isset($\u POST['Login']){语句中设置了它们,当用户首次登录时会调用该语句。您的错误只是因为没有在if(isset($\u POST['Login']){语句之前定义会话变量。这两行是否正确:include(“../model/model.php”);打印页面加载();如果没有包含(“…”)错误,例如找不到文件和页面加载函数找不到错误,则包含并调用该文件和函数是正确的。确定,重新编辑。仍然不起作用。我看不到任何错误。请帮助。我在if(isset($\u POST['Login'])中设置了它们{语句,当用户第一次登录时调用它。您的错误只是因为在此if(isset($\u POST['Login']){语句之前没有定义会话变量。.这两行正确吗:include('../model/model.php');print page_load();如果您没有include('…'))错误,如文件未找到和页面加载函数未找到错误,则包含和调用该文件和函数是正确的。确定,重新编辑。仍然不工作。我看不出任何错误。请帮助。