メールフォーム3
復習
sessionの利用
- formがない =postでデータを受け取れない。
→sessionを使用してデータを受け取る。
- sessionはデータを最初にクリアするようにする。
→$_SESSION=array();
- session = post でpostのデータを代入する。
→$_SESSION=$_POST;
文字化けの処理
mb_language() : mb_internal_encoding()を入力する。
<?php mb_language("japanese"); mb_internal_encoding("UTF-8");
イレギュラーな処理
<?php if(empty($_POST)){ header('Location:mail_input.php');//thanks.phpに直接アクセスしてもメールが届かなくなる。 exit; }
確認画面で入力ミスを訂正する為に戻るボタンを追加する。
<a href="./mail_input.php">戻る</a>
- 単純に戻るボタンを押すとせっかく入力した値がなくなってしまう。
→sessionを利用して一時的に送ったデータを呼び戻す。
thanks.php
メールで送ったデータを削除する
mb_send_mail関数でメールを送った後にはsessionをクリアにしないとずっとデータが残っている
<?php $_SESSION =array();
メールがきちんと送れたかの処理
<?php if($r){ $thanks ="お問い合わせありがとうございます。"; } else { $thanks ="送信エラーが発生しました"; }
-
- 画面上に$thanksの中身のメッセージを表示する
<?php function h($str){ return htmlspecialchars($str,ENT_QUOTES,'utf-8'); } ?> <!doctype html> <html> <head> <meta charset="UTF-8"> <title>thanks</title> </head> <body> <h1>送信完了</h1> <p><?php echo h($thanks) . "\n"; ?></p> <a href="./mail_input.php">入力画面戻る</a> </body> </html>
- htmlに出力する際に全てにhtmlspecialcharsをかけておくと後々楽になるので
h($thanks)と入力する。