■⑦ログインフォーム
login.php
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>ログイン登録画面</title>
</head>
<body>
<h2>ログインフォーム</h2>
<form action="top.php" method="POST">
<p>
<label for="email">メールアドレス:</label>
</p>
<p>
<label for="username">パスワード:</label>
</p>
<p>
<input type="submit" value="ログイン">
</p>
</form>
<a href="signup_form.php">新規登録はこちら</a>
</body>
</html>
■⑧バリデーション
top.php
<?php
require_once('../classes/UserLogic.php');
//エラ〜メッセージ
$err = [];
if(!$email = filter_input(INPUT_POST,'email')) {
$err['email'] = 'メールアドレスを記入してください。';
}
if(!$pass = filter_input(INPUT_POST,'password')) {
$err['password'] = 'パスワードを記入してください。';
}
if(count($err) === 0) {
echo 'ログインしました。';
}
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>ユーザー登録完了画面</title>
</head>
<body>
<?php if(count($err) > 0):?>
<?php foreach($err as $e): ?>
<p><?php echo $e?></p>
<?php endforeach?>
<?php else:?>
<p>ユーザー登録が完了しました。</p>
<?php endif?>
<a href="./login.php">戻る</a>
</body>
</html>
■⑨top.phpでsessionを使う。
top.php
//下記を追加
<?php
//セッションするのに必要
session_start();
if(count($err) > 0) {
//エラーがあった場合はエラーを&_SESSIONに入れたままlogin.phpに戻る。
$_SESSION = $err;
//login.phpに戻る。
header('Location: login.php');
return;
}
?>
■⑩login.phpにもsessionを使う。
例えば名前やパスワードを記入せず
ログインボタンを押した場合ページを変えずlogin.phpでエラーメッセージを出す事ができる。
login.php
<?php
//セッションするのに必要
session_start();
//セッションで エラーメッセージを受け取る。
$err = $_SESSION;
//再度更新した時にセッションを消す。
$_SESSION = array();
session_destroy();
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>ログイン登録画面</title>
</head>
<body>
<h2>ログインフォーム</h2>
<form action="top.php" method="POST">
<p>
<label for="email">メールアドレス:</label>
<input type="email" name="email">
//エラーメッセージがあれば記載
<?php if(isset($err['email'])):?>
<p><?php echo $err['email'];?></p>
<?php endif?>
</p>
<p>
<label for="username">パスワード:</label>
<input type="password" name="password">
/エラーメッセージがあれば記載
<?php if(isset($err['password'])):?>
<p><?php echo $err['password'];?></p>
<?php endif?>
</p>
<p>
<input type="submit" value="ログイン">
</p>
</form>
<a href="signup_form.php">新規登録はこちら</a>
</body>
</html>