Мои переменные сеанса не переносятся через разные страницы - PullRequest
0 голосов
/ 30 января 2019

Я делаю пользовательский интерфейс входа в систему на архитектуре 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
    }
}

И этоФайл my 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, на странице отображается сообщение об ошибке

Примечание: не определенопеременная: _SESSION в C: [...] \ home.php в строке 15 "

(в строке 15 я делаю print_r)

И на странице отображается"test1 "(он же соответствует" test ". print_r ($ _ SESSION))

1 Ответ

0 голосов
/ 30 января 2019

Добавить session_start();

  • в начале файла controller/login.php и
  • в начале файла view/home.php
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...