お問い合わせフォームの一部。
このコードに現在はDB連携を施す処理を追加している途中です。
現状ではデータベースに接続は出来ているのですが、入力した情報がデータベースに登録されない(空白で登録されている)状態です。
これを解決していくのがこれからの課題になります。
現状はChatGPTなどが有り解決に対してもさほど苦労模しなさそうですが、勉学に励んで
<?php
session_start();
header(‘Cache-Control: no-store, no-cache, must-revalidate, max-age=0’);
header(‘Cache-Control: post-check=0, pre-check=0’, false);
header(‘Pragma: no-cache’);
if (!isset($_SERVER[‘HTTP_REFERER’]) || strpos($_SERVER[‘HTTP_REFERER’], ‘contact.php’) === false) {
header(‘Location: contact.php’);
exit;
}
// フォームが送信されたときの処理
if ($_SERVER[‘REQUEST_METHOD’] === ‘POST’) {
// 入力されたデータを取得
$name = $_POST[‘name’];
$kana = $_POST[‘kana’];
$tel = $_POST[‘tel’];
$email = $_POST[’email’];
$body = $_POST[‘body’];
$_SESSION[‘name’] = htmlspecialchars($name, ENT_QUOTES);
$_SESSION[‘kana’] = htmlspecialchars($kana, ENT_QUOTES);
$_SESSION[‘tel’] = htmlspecialchars($tel, ENT_QUOTES);
$_SESSION[’email’] = htmlspecialchars($email, ENT_QUOTES);
$_SESSION[‘body’] = htmlspecialchars($body, ENT_QUOTES);
$errors = [];
if (empty($_POST[‘name’])) {
$errors[‘name’] = ‘氏名を入力してください’;
} elseif (mb_strlen($_POST[‘name’]) > 10) {
$errors[‘name’] = ‘氏名は10文字以内で入力してください’;
}
// フリガナ
if (empty($_POST[‘kana’])) {
$errors[‘kana’] = ‘フリガナを入力してください’;
} elseif (mb_strlen($_POST[‘kana’]) > 10) {
$errors[‘kana’] = ‘フリガナは10文字以内で入力してください’;
}
// 電話番号
if (!empty($_POST[‘tel’]) && !preg_match(‘/^[0-9]{10,11}$/’, $_POST[‘tel’])) {
$errors[‘tel’] = ‘電話番号を正しく入力してください’;
}
// メールアドレス
if (empty($_POST[’email’])) {
$errors[’email’] = ‘メールアドレスを入力してください’;
} elseif (!filter_var($_POST[’email’], FILTER_VALIDATE_EMAIL)) {
$errors[’email’] = ‘メールアドレスを正しく入力してください’;
}
// お問い合わせ内容
if (empty($_POST[‘body’])) {
$errors[‘body’] = ‘お問い合わせ内容を入力してください’;
}
if (!empty($errors)) {
header(‘Location: contact.php?errors=1’);
exit;
}
}
?>
<!DOCTYPE html>
<html lang=”ja”>
<head>
<meta charset=”utf-8″>
<title>お問い合わせ確認画面</title>
<link rel=”stylesheet” type=”text/css” href=”base.css”>
<meta name=”viewport” content=”width=device-width, initial-scale=1″>
<script src=”https://code.jquery.com/jquery-3.6.0.min.js”></script>
<script src=”script.js”></script>
<script src=”scripts.js”></script>
<script>
</script>
</head>
<body>
<headers>
<?php include(“head.php”); ?>
</headers>
<section class= “boxs”>
<div class= “contact_box”>
<h2>お問い合わせ</h2>
<form action=”complete.php” method=”POST”>
<p>下記の内容をご確認の上送信ボタンを押してください</p>
<p>内容を訂正する場合は戻るを押してください。</p>
<dl class= “confirm”>
<dt>氏名</dt>
<?php if(isset($_SESSION[‘name’])): ?>
<dd><?php echo $_SESSION[‘name’]; ?></dd>
<?php endif; ?>
<dt>フリガナ</dt>
<?php if(isset($_SESSION[‘kana’])): ?>
<dd><?php echo $_SESSION[‘kana’]; ?></dd>
<?php endif; ?>
<dt>電話番号</dt>
<?php if(isset($_SESSION[‘tel’])): ?>
<dd><?php echo $_SESSION[‘tel’]; ?></dd>
<?php endif; ?>
<dt>メールアドレス</dt>
<?php if(isset($_SESSION[’email’])): ?>
<dd><?php echo $_SESSION[’email’]; ?></dd>
<?php endif; ?>
<dt>お問い合わせ内容</dt>
<?php if(isset($_SESSION[‘body’])): ?>
<dd><?php echo $_SESSION[‘body’]; ?></dd>
<?php endif; ?>
<dd class= “confirm_btn”>
<button type=”submit”>送信する</button>
<input type=”button” value=”戻る” onClick=”history.back();”>
</dd>
</dl>
</form>
</div>
</section>
<footer>
<?php include(“foot.php”); ?>
</footer>
</body>
</html>
The following two tabs change content below.