簡単なPHPMySQLログインページを作成しようとしています。私はコードを読み続けていますが、何が間違っているのかわかりません。データベースでテストとして調べたばかりの電子メールとパスワードを使用してテストしているので、それが存在することがわかります。前のフォームで[送信]をクリックすると、同じページにリダイレクトされ、ログインしません(ヘッダーが機能すると、ヘッダーが$ _SESSION変数で変更されるため、これはわかります。登録ページが機能するため、これはわかりますが、登録後のログインではありません)。登録時に名前と名前を入力することにも注意してください。そのため、session_startの$_SESSION変数に名前を含めました。コードは次のとおりです(最初にフォーム、次にchecklogin.phpページ)。
<!--THIS IS THE FORM FROM THE PAGE SIGN_IN.PHP-->
<form method="post" target="checklogin.php">
<label for="email">EMAIL/USERNAME:</label>
<input type="text" name="email" id="email">
<label for="password">PASSWORD:</label>
<input type="password" name="password" id="password">
<br />
<input type="submit" value="Let's Play!">
</form>
そして、これはフォームが投稿するchecklogin.phpスクリプトです:
<?php
$mysqli = mysqli_connect("mysql_name","login_id","password", "db_name");
if (!$mysqli)
{
die('Could not connect: ' . mysqli_error($mysqli));
}
// username and password sent from form
//NEVER Remove the mysql_real_escape_string. Else there could be an Sql-Injection!
$email=$mysqli->real_escape_string($_POST['email']);
$password=$mysqli->real_escape_string($_POST['password']);
$sql="SELECT * FROM tbl_name WHERE email='$email' and password='$password'";
$result = $mysqli->query($sql);
if(is_object($result) && $result->num_rows == 1){
// Register variables and redirect to file "profile.php"
session_start();
$_SESSION['firstname']=$_POST['firstname'];
$_SESSION['lastname']=$_POST['lastname'];
$_SESSION['email']=$_POST['email'];
$_SESSION['password']=$_POST['password'];
redirect('profile.php');
} else {
echo "Wrong Username or Password";
}
?>
私もheader('location:profile.php')でこれを試しましたが、同じ結果になりました。