让我解释一下:我有3个页面(登录后一个页面,一个过渡页面,以及我的主页。)
因此,我希望阻止访问我的应用程序,因为如果断开会话连接,然后返回,即使会话关闭,您仍然可以访问该网站。这就是为什么我要使用!isset($_SESSION['pseudo'])
。
第一页:
<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;
}
第二页:
$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']
现已设置。不是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?
有人可以帮助我吗?
答案 0 :(得分:0)
我找到了。
我在Paths.php的顶部添加了onFaxChange(value){
this.ngM_Fax = value.substring(0, value.length - 1);
}
。
&我已经删除了所有其他页面的session_start()
。