初心者のWEBデザイン

HTML,CSS、その他WEBデザインに関する事を記述していきます

PHP メールフォーム 送信編 健忘録

久しぶりにメールフォーム作成したら忘れていることが多かったので、
残しておきます。

入力ページ:情報の入力します。

POSTで確認ページにデータを送ります。
GETだと入力内容ダダ漏れなので気をつけましょう。

         ↓

確認ページ:入力した情報を確認します。

間違いがあれば入力ページに戻ります。
入力ページで入力された値をPOSTで受け取り
SESSION変数に代入します。

  • 直接アクセスされた場合の処理(header関数でリダイレクト設定をする)
  • 判定フラグ作成(条件分岐してFalseなら送信ボタンを押せない等...)

         ↓

送信ページ:送信が完了したことを確認するページです。

受け取ったSESSION変数を変数に代入します。
不正利用防止の為、SESSION変数は破棄します。

下記のサイトがSESSIONの仕組みが分かりやすく、参考になりました。
d.hatena.ne.jp





メール本文を変数に入れる際にヒアドキュメントを使用することがあります。
その際の注意点

$document = <<<EOD //セミコロン要らない
===========================

//ここにたくさんのメッセージを入力する
//PHPの構文制御は無くなります。
//変数を使用するときには、{}で括ります。

===========================
EOD; //セミコロン必要 + インデントがあるとエラーになります。

foreachなどのループ処理をしたい場合には

$array = ['面倒臭くても','1行1行','変数に入れていきましょう'] 
foreach($array as $k)
$document .= $k . "\n";
//改行コードはダブルクォーテーションで囲みましょう。
//シングルクーテーションだとそのまま表示されます。

送信完了画面でリロードされるとメールが沢山送信され困りますので、
フラグとSESSION変数の有無で条件分岐しときましょう。


このページが参考になりました。
teratail.com