首先,英语不是我的母语,而且已经很晚了,我从中午开始搜索这个。所以,请放纵。
我对一个简单的登录表单有疑问。嗯,这个登录表单是如此简单,我以为我不会有任何问题......
我做了什么: 所以,我创建了一个包含登录表单的页面 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>
login() 进入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 !';
}
}
}
?>
以及我backoffice.php中每个 html 声明之前的一堆代码:
<?php
session_start();
if(!isset($_SESSION['login'])) {
die("NO PASARAN");
}
我真的不知道我为什么要转身:我检查了所有密码和登录名,每个标题。(为了避免标题可能出现的问题,我什至尝试使用脏 js 包含
echo '<script>document.location = "backoffice.php"</script>';
我有点绝望,所以如果你能帮助我或者只是打开一个可能的错误/php错误的灯,我会非常感激。
谢谢!