phpでお問い合わせフォームを作る
データを『送信する側』
- actionとmethodを定義する必要がある
- action 送信先・遷移先
- method データの送信方法(HTTP GET送信・POST送信)
- GET送信:URLの末尾に?+パラメーター=値というURLが記載される
- サイトを閲覧した時や検索する時に使用される
- post送信:データを登録する時などに使用する
- サーバでデータを更新する時、個人情報を送る時、データ量が多い時
- GET送信:URLの末尾に?+パラメーター=値というURLが記載される
データを『受け取る側』
- データを受け取る
- スーパーグローバル変数にデータが格納され、運ばれてくる。
- スーパーグローバル変数
- $_POST POST送信を使った際に使用する
- $_GET GET送信を使った際に使用する
- スーパーグローバル変数
- スーパーグローバル変数にデータが格納され、運ばれてくる。
index.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>Document</title>
</head>
<body>
<form action="check.php" method="POST">
<div>
nickname<br>
<input type="text" name="nickname">
</div>
<div>
email<br>
<input type="text" name="email">
</div>
<div>
お問い合わせ内容<br>
<textarea id="" cols="30" rows="10" name="content"></textarea>
</div>
<input type="submit" value="内容の確認">
</form>
</body>
</html>
chack.php
$nickname = $_POST['nickname'];
$email = $_POST['email'];
$content = $_POST['content'];
if($nickname == ''){
$nickname_result = 'ニックネームが入力されておりません';
}else{
$nickname_result = $nickname;
}
if($email == ''){
$email_result = 'メールアドレスが入力されておりません';
}else{
$email_result = $email;
}
if($content == ''){
$content_result = 'お問い合わせ内容が入力されておりません';
}else{
$content_result = $content;
}
?>
<!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>Document</title>
</head>
<body>
<h1>!入力内容をご確認ください!</h1>
<p>nickname:<?php echo $nickname_result ?></p>
<p>email:<?php echo $email_result ?></p>
<p>お問い合わせ内容:<?php echo $content_result ?></p>
<form action="thanks.php" method="POST">
<input type="hidden" name="nickname" value="<?php echo $nickname; ?>">
<input type="hidden" name="email" value="<?php echo $email; ?>">
<input type="hidden" name="content" value="<?php echo $content; ?>">
<input type="submit" value="送信OK">
</form>
</body>
</html>
thanks.php
<?php
$nickname = $_POST['nickname'];
$email = $_POST['email'];
$content = $_POST['content'];
?>
<!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>Document</title>
</head>
<body>
<h1>お問い合わせありがとうございました!</h1>
<div>
<h3>お問い合わせ情報</h3>
<p>nickname:<?php echo $nickname; ?></p>
<p>email:<?php echo $email; ?></p>
<p>お問い合わせ内容:<?php echo $content; ?></p>
</div>
</body>
</html>
ちなみに、入力をされていない時は…
入力されてませんと表示するには、下記を記述する
$nickname = $_POST['nickname'];
$email = $_POST['email'];
$content = $_POST['content'];
if($nickname == ''){
$nickname_result = 'ニックネームが入力されておりません';
}else{
$nickname_result = $nickname;
}
if($email == ''){
$email_result = 'メールアドレスが入力されておりません';
}else{
$email_result = $email;
}
if($content == ''){
$content_result = 'お問い合わせ内容が入力されておりません';
}else{
$content_result = $content;
}