Позвольте мне объяснить: у меня есть 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?
Кто-нибудь может мне помочь?