まず英語が母国語じゃなくて遅くて昼から検索してます。ですから、甘やかしてください。
単純なログインフォームに問題があります。まあ、このログインフォームはとてもシンプルなので、私は何の問題もないと思っていました...
私がしたこと: それで、ログインフォームを含むページ index.php を作成しました。送信されると、スクリプトはフィールドが入力されているかどうかを確認し、DB に接続し、DB のデータをチェックします。パスワードとログインが正しい場合は、$_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エラーの可能性に光を当てることができれば、私はとても感謝しています.
ありがとう!