登录表单:不允许重定向到允许的页面
问题描述:
首先,英语不是我的母语,它很晚,我从中午开始搜索。所以,请放纵。登录表单:不允许重定向到允许的页面
我有一个简单的登录表单有问题。那么,这个登录表单,就是这么简单,我想我不会有任何问题......
我做了什么: 所以,我创建了一个网页的index.php其中包含登录表单。发送时,脚本验证字段是否已填充,连接到数据库,检查数据库中的数据,如果密码和登录正确,则启动$ _SESSION并填充$ _SESSION ['login]。然后它将用户重定向到带有后台内容的页面,通过session_start和$ _SESSION ['login']的检查。理论上,它会起作用。
但是没有。
问题是什么: 当我登录表单中输入的信息,并将其发送,同一页面重新加载,并且不重定向我到后台页面。零误差推出
我的代码: 的index.php
<?php
include('functions.php');
login();
?>
<!DOCTYPE html>
<head>
...
</head>
<body>
<div id="main">
<h2>Authentification</h2>
<form name="iam" method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>" >
<label for="login" class="iconic comment"> Login <span class="required">* </span>
</label>
<input type="text" required="required" name="login" id="login">
<label for="mdp" class="iconic comment"> Password <span class="required">* </span>
</label>
<input type="password" required="required" name="mdp" id="mdp">
<input type="submit" name="Submit" value="Submit">
</form>
</div>
</body> </html>
登录()到的functions.php:
<?php
include_once('conf/connec.php');
$connect_db=connect();
function login() {
if(isset($_POST['Submit'])) {
if(!empty($_POST['login']) && !empty($_POST['mdp'])) {
$query = mysql_query("SELECT mdp, login FROM 2K13_id WHERE login = '".md5($_POST['login'])."'");
if(mysql_num_rows($query) == 1) {
$user = mysql_fetch_object($query);
// On vérifie la concordance des mots de passe (en md5)
if(md5($_POST['mdp']) == $user->mdp) {
session_start();
$_SESSION['login'] = $user->login;
header("Location:backoffice.php");
} else {
echo 'Mauvais mot de passe pour cet utilisateur.';
}
} else {
echo 'Ce login n\'existe pas dans notre base.';
}
} else {
echo 'Vous devez remplir tous les champs !';
}
}
}
?>
和每一个代码前的一堆HTML声明在我的backoffice.php:
<?php
session_start();
if(!isset($_SESSION['login'])) {
die("NO PASARAN");
}
我真的不知道我为什么转身:我检查了所有的密码和登录,每个头。 (为了避免候选条件问题,头,我甚至用脏JS列入
echo '<script>document.location = "backoffice.php"</script>';
尝试我有点绝望,因此,如果你能帮助我,或只打开一盏灯就可能出错/ PHP的错误,我将完全心存感激。
谢谢!
答
尝试关闭输入标签,取而代之的
<input type="text" required="required" name="login" id="login">
<label for="mdp" class="iconic comment"> Password <span class="required">* </span>
</label>
<input type="password" required="required" name="mdp" id="mdp">
<input type="submit" name="Submit" value="Submit">
写
<input type="text" required="required" name="login" id="login" />
<label for="mdp" class="iconic comment"> Password <span class="required">* </span>
</label>
<input type="password" required="required" name="mdp" id="mdp" />
<input type="submit" name="Submit" value="Submit" />
此外,检查您是否正在输入if
头重定向。您不能在它之前有任何html输出,包括空白空间。和URL通常应该是绝对的,不是相对的,所以加http://...
嗨@Marko,感谢您的时间和你的回答,我没有收我的输入标签(_even如果不关闭这些是写在HTML5_ 的新途径) ,我检查:“if”:它被输入。我检查了是否我没有写入包含一些空格,或者如果我在标题之前调用Html:nope ...所以,我不知道为什么我的文件没有被启动...但感谢这些命题! – Gaelle 2013-03-01 10:03:21
和你尝试绝对的网址? – 2013-03-01 10:06:00
是的。正确的道路。不起作用。它可能来自我的主机,不允许标题的重定向? – Gaelle 2013-03-01 10:10:50