データベース接続 ログインフォーム
PHPにてログインフォームを作成しています。
PHPは初心者のため、ご教授いただけたらと思います。
下記の記述方法はPHP逆引きレシピという参考書を元に作成しています。
<?php
//DB設定
$DB_HOST = 'localhost';
$DB_USER = 'root';
$DB_PASS = '0000;
$DB_NAME = 'members';
if (count($_POST) == 0) {
echo <<< EOL
<form method="post" action="./main.php">
ユーザーID: <input name="id" />
PASSWORD: <input name="password" type="password" />
<input type="submit" value="ログイン" />
</form>
EOL;
} else {
$link = mysqli_connect($DB_HOST, $DB_USER, $DB_PASS, $DB_NAME);
if (mysqli_connect_errno()) {
die('データベースエラー');
}
// クエリを準備
$sql = 'SELECT * FROM members WHERE id=? AND password=?';
$msg = '認証NG';
if ($stmt = mysqli_prepare($link, $sql)) {
mysqli_stmt_bind_param($stmt, 'ss', $_POST['id'], $_POST['password']);
mysqli_stmt_execute($stmt);
mysqli_stmt_store_result($stmt);
$count = mysqli_stmt_num_rows($stmt);
mysqli_stmt_close($stmt);
if ($count == 1) {
$msg = '認証OK' ;
}
}
echo $msg;
}
?>
という記述ですが、IDとPASSWORDがあっていれば「認証OK」と表示されます。
文字の表示ではなく次のページ(main.php)が表示されません。
どこを編集、記述したらmain.phpが表示されるのでしょうか?
また、間違っていたら「認証NG」と表示されるのですが、
この文言のみの表示でフォームが表示されません。
間違っていたらフォームの上に表示させたいのですが、どのように編集、記述したらよろしいでしょうか?
例↓
*ここに間違っていたら認証NGと表示させる
<form method="post" action="./main.php">
ユーザーID: <input name="id" />
PASSWORD: <input name="password" type="password" />
<input type="submit" value="ログイン" />
</form>
質問ばかりで申し訳ありません。
本やネットなどで色々としらべたのですが、自分の求めているサイトや記述方法が見つかりませんでした。
大変申し訳ないのですが、参考記述または参考サイトなどがありましたらご教授ください。
宜しくお願いいたします。