くろひょうのwebデザインのお勉強帳

フェリカテクニカルアカデミー web制作科の受講生です。授業の要点、復習でつまづいた点などを記録し、レベルアップに励みます。

クリエイターになるための、お勉強の記録帳

[PHP]入力フォーム⑤ フォームが送信されたらメールが届くようにする

フォームが送信されたらメールが届くようにする

メールを送る関数
mb_send_mail()

mb_send_mail(’①メールアドレス’,’②メールの表題’,’③メールの内容’)

①通知してほしいメールアドレス。

②お知らせメールの件名

③お知らせメールの本文。ここに入力したものがお知らせメールの本文になる。
 関数を入れることもできる。

 

入力フォームの内容を表示させたい場合や、文章を定型文にしたい場合は
「ヒアドキュメント」を使うと実現できる。

 

ヒアドキュメント(heredoc)

メールの本文のヒアドキュメントをつくり、お知らせメールに乗るようにします。

 

まず、お知らせメールを送る命令文

mb_send_mail('xxx@xxx.com','お問い合わせがありました','$body');

 $bodyの内容をヒアドキュメントで成形

$body=<<<EOF
お問い合わせが送信されました。
送信者のお名前:{$name}
メールアドレス:{$email}
内容は以下の通りです。
{$msg}
EOF;

 ※EOF=End of File  ※緑色の文字の部分がヒアドキュメントの範囲

開始と終わりの文字列は他のものでもよい。ただし同一の文字列でなければならない。

ヒアドキュメントとお知らせメールの命令文は、send.phpPHPコードの最後に書く。

ここまでのファイルの内容

【send.php

<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<title>入力確認画面</title>
<?php
if( !isset($_POST['name'])||!isset($_POST['email'])||!isset($_POST['msg']) ){
  header('Location:./index.php');
  exit;
}

$name = $_POST['name'];
$email = $_POST['email'];
$msg = $_POST['msg'];

session_start();                
$_SESSION['name'] = $_POST['name'];
$_SESSION['email'] = $_POST['email'];
$_SESSION['msg'] = $_POST['msg'];

$body=<<<EOF
お問い合わせが送信されました。
送信者のお名前:{$name}
メールアドレス:{$email}
内容は以下の通りです。
{$msg}
EOF;

mb_send_mail('xxx@xxxxx.com','お問い合わせがありました','$body');


?>
</head>
<body>
<h1>入力内容確認画面</h1>
<table>
<tr><th>お名前:</th><td><?php echo htmlspecialchars($name, ENT_QUOTES,'UTF-8'); ?></td></tr>
<tr><th>メールアドレス:</th><td><?php echo htmlspecialchars($email, ENT_QUOTES,'UTF-8'); ?></td></tr>
<tr><th>お問い合わせ内容:</th><td><?php echo htmlspecialchars($msg, ENT_QUOTES,'UTF-8'); ?></td></tr>
</table>
<p><a href="send.php">送信する</a></p>
</body>
</html>