私はウェブ開発に非常に慣れており、現在、学校プロジェクトに取り組んでいます。 ログインコードに問題がありますが、それが何であるかわかりません。 フォームを送信すると、ページが再ロードされたように見え、セッションも設定されていません。このPHPログインページの何が悪いのですか?
マイ短縮ログインページ:私は、ウェブ上で発見ほとんどの例とは異なり
<?php include "connect.php";
if (isset($POST['login'])) {
$user_email_username = mysqli_real_escape_string($link, $_POST['email_username']);
$user_password = mysqli_real_escape_string($link, $_POST['password']);
$email_username_query = mysqli_query($link, "SELECT * FROM User WHERE email='$user_email_username' OR username='$user_email_username'");
if (mysqli_num_rows($email_username_query) == 0) {
$not_registered_error = "It looks like you still don't have an account. <a href=\"signup.php\">Sign up</a>.";
} else {
$row = mysqli_fetch_array($email_username_query);
if (sha1($user_password) != $row['password']) {
$wrong_password_error = "The password you submitted is wrong.";
} else {
$_SESSION['user_id'] = $row['idUser'];
$_SESSION['user_name'] = $row['name'];
$_SESSION['user_username'] = $row['username'];
header("Location: index.php");
}
}
}
?>
<!--metadata-->
<div class="container">
<div class="row">
<div class="col-md-6 col-md-offset-3">
<div id="login" class="login-panel panel panel-default">
<div class="panel-body">
<form role="form" method="post" action="login.php">
<fieldset>
<!--login form-->
</fieldset>
<?php if (isset($not_registered_error)) {
echo "<div class=\"alert alert-danger\" role=\"alert\">" . $not_registered_error . "</div>";
}
if (isset($wrong_password_error)) {
echo "<div class=\"alert alert-danger\" role=\"alert\">" . $wrong_password_error . "</div>";
} ?>
<p>Haven't joined yet? <a href="signup.php">Sign up</a>.</p>
</form>
</div>
</div>
</div>
</div>
</div>
//...
、私はここで達成しようとしていますが、ユーザー名(または電子メール)がないかどうかを把握するためのプログラムを持っていることですまたはそのユーザー名のパスワードが間違っています。 私が書いた申し込みプログラムは素晴らしい作品です。質問自体はすでに長いので、signup.phpを追加しませんでした。それが役に立つのであれば教えてください。 ローカルデータベースにはmysqlを使用し、スタイリングにはブートストラップを使用します。
私は、この質問が多くの人にとって役に立ちそうであることを知っていますが、私はそれをより良く策定する方法を知りませんでした。
はあなたのすべてをありがとう:D
*あなたが*見つけほとんどの例とは異なり!それはログインの基礎と思われる... – jeroen
私は、ほとんどの例でこのようなクエリを使用することを意味しました: "SELECT * FROM User WHERE email = '$ user_email_username' AND password = '$ password'";あなたが提出された電子メールまたはパスワードに問題があるかどうかを知ることはできません。 –
Ryan Vincent、thanks :) –