PHPで入力されたメールアドレスにメールを送信するサンプルでForm処理をイメージする

HTTPとは何か。formタグはどう使うか。PHPとは。について今まで解説しました。

HTTPリクエストやレスポンスが何か。

formタグが何かが分かっても実際に使ってみないとなかなか身につきません。

今回は入力されたメールアドレスにメールを送信するだけというシンプルなサンプルコードを使ってformやPHPでの処理の書き方について説明します。

Formサンプルのコード

  • 画面にメールアドレス入力欄と送信ボタンがある。
  • 送信ボタン押下で、入力されたメールアドレスにメールを送信する。
  • 入力されていない場合や、メールアドレスの形式として不正な場合はエラーとする。

細かく書けば他にもあるけど、仕様はざっとこんな感じです。

画面は1つしかなく、送信後は同じ画面を表示します。

コード解説

HTMLのコードはそれほど難しくないので割愛しますが、一部だけ。

HTML内の <?php echo $msg; ?> は、送信完了したり送信に失敗した場合にメッセージを表示するものです。

<input type=”text” name=”youremail” value=”<?php echo $mail;?>“> と、メールアドレスを入力するフォームの value にPHPコードが埋め込まれています。

これは、送信後に入力したメールアドレスが入力されたままの状態になるようにするものです。

 

2行目

これは、初期表示時などにメールアドレスを受け取れない場合、34行目で出力しようとすると「$mail?そんな変数ないですよ!」って怒られないために最初に空で宣言しています。

じゃ $msg は?となります。$msg に関してはその後の if 文のどこに入っても $msg 変数が宣言されるため問題ないです。

 

3行目

これは、メールアドレスがPOSTデータにセットされているかどうかを判定しています。

これで同時にPOSTされたリクエストかどうかの判定が出来ます。

もしセットされていれば、4行目の $mail = $_POST[“youremail”]; で入力値を取得します。

 

5行目

これは入力された値がメールアドレスの形式かどうかをチェックしています。

メールアドレスは半角英数だったり間に@が入っていたり、@の後に.が使われていたりなどの形式があります。

今回はこちらのサイトを参考にメールアドレスの形式についてチェックしました。

 

6-9行目

これはメール送信をする為の設定値です。

$from は送信元のメールアドレスです。

$subject は、メールの件名です。

$message は、メールの本文です。

$header は、普段メールを使っているだけではあまり見えない部分です。

ヘッダーと言って、ここでは送信元のメールアドレスや返信先のメールアドレスを設定しています。

 

そして、10行目

ここでメール送信をします。

PHPには mb_send_mail() という関数があり、日本語のメール送信に使えます。

mb_send_mail() の戻り値を $result 変数に格納しています。メールが成功すれば true 失敗すれば false になります。

なので、11-15行目で

のようにメッセージを設定します。

まとめ

今回のサンプルで form タグの使い方や、formで送信した値をPHPで受け取る方法についてイメージできたと思います。

今回は1ページだけで作成しましたが、通常は確認画面や送信完了画面などを作成し、そちらでメール送信したりします。

簡単なコードですが、PHPの流れが分かるサンプルだと思うので、しっかりイメージしてください。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA