entry.php ではユーザー登録フォームを表示し,入力内容を検査します。ここではデータベースへの登録はまだ行わず,確認済みの入力値をセッション $_SESSION['join'] に保存して check.php に渡します。
source_dbconnect/entry.php
<?php
// entry.php: ユーザー登録(入力)
session_start();
require_once __DIR__ . '/dbconnect.php';
function h($value): string
{
return htmlspecialchars((string)$value, ENT_QUOTES, 'UTF-8');
}
$error = [];
if (!empty($_POST)) {
if ($_POST['name'] === '' || $_POST['mail'] === '' || $_POST['pass_word'] === '') {
$error['blank'] = 'blank';
} elseif (strlen($_POST['pass_word']) < 4) {
$error['pass_word'] = 'short';
} else {
$_SESSION['join'] = [
'name' => $_POST['name'],
'mail' => $_POST['mail'],
'pass_word' => $_POST['pass_word'],
];
header('Location: check.php');
exit();
}
}
?>
<!DOCTYPE html>
<html lang="ja">
<head><meta charset="UTF-8"><title>ユーザー登録</title></head>
<body>
<h1>ユーザー登録</h1>
<?php if (isset($error['blank'])): ?><p style="color:red">入力欄に空白があります。</p><?php endif; ?>
<?php if (isset($error['pass_word'])): ?><p style="color:red">パスワードは4文字以上で入力してください。</p><?php endif; ?>
<form action="" method="post">
<p>ユーザー名:<input type="text" name="name" value="<?php echo h($_POST['name'] ?? ''); ?>" required></p>
<p>メールアドレス:<input type="email" name="mail" value="<?php echo h($_POST['mail'] ?? ''); ?>" required></p>
<p>パスワード:<input type="password" name="pass_word" required></p>
<p><input type="submit" value="登録内容を確認する"></p>
</form>
<p><a href="index.php">ログイン画面へ戻る</a></p>
</body>
</html>
この段階ではPDO接続を直接使う処理はありませんが,後で入力値の重複確認を行うため,本章前半の統一方針として dbconnect.php を読み込んでいます。