我的会话变量没有通过不同页面

时间:2019-01-30 14:08:22

标签: php session

我正在MVC体系结构上创建用户登录界面。 该视图具有登录名/密码表单,该表单将把表单结果发送到控制器部分中的文件。控制器将在模型中调用sql查询,以检查是否存在此登录名/密码,如果存在,则使用具有登录名的会话变量将其重定向到首页。

但是,当重定向有效时,会话变量在重定向到主页后似乎并没有通过主页。

这是我的controller / login.php文件

include '../model/query.php'; //the model file with the sql queries

$query = new query();

if ( isset($_GET['login']) && isset($_GET['password']) )
{
    $login = $_GET['login'];
    $password = $_GET['password'];

    $user = $query->checkUser($login, $password);
    //this will return an array containing the result of the query that checks the lines with that login and password
    if($user)
    {
        $_SESSION['login'] = $user['login'];
        header('Location: ../view/home.php'); //this also works correctly
    }
}

这是我的view / home.php文件

include 'page.php'; 
//page.php is a class that features the elements common to all pages

$page = new page();
$page->body = "test" . print_r($_SESSION); 
//I've added the print_r($_SESSION) to check if the session variable's value
echo $page->showpage();

但是,在login.php上计算并返回home.php之后,页面显示错误消息

  

注意:未定义的变量:第15行的C:[...] \ home.php中的_SESSION”

(第15行是我执行print_r的地方)

然后,页面显示“ test1”(又名“ test”。print_r($ _ SESSION))

1 个答案:

答案 0 :(得分:0)

添加session_start();

  • 在文件controller/login.php的开头,并且
  • 文件view/home.php的开头