$ _SESSION ['pseudo'] = ноль, хотя явно не должно - PullRequest
0 голосов
/ 25 сентября 2019

Позвольте мне объяснить: у меня есть 3 страницы (одна для входа, переходная страница и моя главная страница после того, как вы вошли в систему). Поэтому я хочу запретить доступ моему приложению, потому что, если вы отключите сеанс, а затем вернетесь назад, у вас все еще есть доступ к сайту, даже если ваша сессия выключена.Вот почему я хочу использовать !isset($_SESSION['pseudo']).

1-я страница:

<form method="post" action="<?php echo serverRoot; ?>?action=connect">
    <input required class="input-login" name="pseudo" type="text" id="pseudo" placeholder="Login">
    <input required class="input-login" type="password" name="password" id="password" placeholder="Password">
    <input id="connect" type="submit" value="Connect" />
</form>

Так что, как вы можете видеть, после передачи мы получили действие «подключиться».

Здесь случай «подключения»:

if (isset($_GET['action'])) {

    switch ($_GET['action']) {

    case 'connect':
            {
                showPage(adresseRoot . 'PHP/View/', 'FormConnection.php', "Connection");
                break;
            }

2-я страница:

$user = UserManager::getByPseudo($_POST['pseudo']);

if ($user->getPassword() === 'md5'.md5($_POST['password'].$_POST['pseudo']))
    {
        $_SESSION['pseudo'] = $user->getLogin();
        $_SESSION['id'] = $user->getIdUtilisateur();
        $message = '<p>Welcome ' . $user->getLogin() . ', !</p>';
        echo $message;
        header("refresh:3;url=Paths.php?action=listMenu");
    } 

Как видите, $_SESSION['pseudo'] теперь isset.Это не NULL!И тогда у вас есть header("refresh:3;url=Paths.php?action=listMenu")

case 'listMenu':
{
    if(!isset($_SESSION['pseudo'])){

        showPage(adresseRoot . 'PHP/View/', 'FormConnection.php', "Connection"); //You don't have the right to go to the Website
        break;

    }
    else{
        showPage(adresseRoot . 'PHP/View/', 'ListMenu.php', "Main page"); //You have the right to go to the Website
        break;
    }
}

Дело в том, что когда я вхожу в правильные логины, я перенаправлен на страницу подключения, а не на моей главной странице ... Wtf?

Кто-нибудь может мне помочь?

1 Ответ

0 голосов
/ 26 сентября 2019

Ну, я нашел.

Я добавил session_start() вверху Paths.php.

и удалил session_start() всех других страниц.

...