メールフォーム〜mb_send_mail
PHPで、文字列の結合などを行いメール本文を作る。
C言語のstrcat()とfprintf()みたいな感じ。
ファイルポインタを読み込んで、自分で考えた形式でファイルに出力する。
通常のprintf()より面白かった。
※ファイルポインタやfprintf()はPHPにもあるみたい。完全Cだな。
メールフォーム例
だいたいこんな感じです。
inputタグのname属性値 ↓ $●●● = $_POST["◯◯◯"]; ここの◯の部分に入り、●の変数へと渡され、PHPで処理される。
※以下2つのソースは同一のファイル内に存在します。
メールフォーム(contact.php)
<? if (!strlen($mode)) { ?> <div> <form action="このファイル自身.php" method="post"> <input type="hidden" name="mode" value="1"> <table cellpadding="0" cellspacing="0"> <tr> <th>お客様名</th> <td> <div><input type="text" name="name01" value="" /></div> <p>例:山田 太郎</p> </td> </tr> <tr> <th>お客様名(フリガナ)</th> <td> <div><input type="text" name="name02" value="" /></div> <p>例:ヤマダ タロウ</p> </td> </tr> <tr> <th>企業名</th> <td> <div><input type="text" name="company" value="" /></div> <p>法人の方はコチラにご入力お願い致します。 例:???株式会社</p> </td> </tr> <tr> <th>郵便番号</th> <td> <div><input type="text" name="address01" value="" /></div> <p>例:000-0000</p> </td> </tr> <tr> <th>ご住所</th> <td> <div><input type="text" name="address02" value="" /></div> <p>例:東京都◯◯◯****</p> </td> </tr> <tr> <th>ご連絡先</th> <td> <div><input type="text" name="tel" value="" /></div> <p>例:03-1234-5678</p> </td> </tr> <tr> <th>メールアドレス</th> <td> <div><input type="text" name="mail_address01" alue="" /></div> <p>例:*****@***.***</p> </td> </tr> <tr> <th>メールアドレス(確認用)</th> <td> <div><input type="text" name="mail_address02" value="" /></div> <p>※確認の為、もう一度ご入力お願い致します。</p> </td> </tr> <tr> <th>お問い合わせ内容</th> <td><textarea name="comment"></textarea></td> </tr> </table> <div class="submit"><input type="image" src="img/contact/contact_submit.png" alt="この内容で送信" /></div> </form> </div> <? } else { ?> <div class="content01_area"> <p>お問い合わせありがとうございました。</p> </div> <? } ?>
取得〜送信(内部ロジック)
<? $mode = $_POST["mode"]; if (strlen($mode)) { // フォームからの情報取得 $name01 = $_POST["name01"]; $name02 = $_POST["name02"]; $company = $_POST["company"]; $address01 = $_POST["address01"]; $address02 = $_POST["address02"]; $tel = $_POST["tel"]; $mail_address01 = $_POST["mail_address01"]; $comment = $_POST["comment"]; // 初期設定 $CRLF = "\r\n"; $LF = "\n"; $CR = "\r"; // お問い合わせメール受付側 $send_mail_address = "*********@***.**"; $subject = "ここにメール件名"; $content = "メール本文はここから"; $content .= "メール本文の続き01"; $content .= "メール本文の続き02"; $content .= "メール本文の続き03"; $content .= "氏 名 :" . $name01 . "(" . $name02 . ")" . $CRLF ; $content .= "会社名 :" . $company . $CRLF ; $content .= "郵便番号:" . $address01 . $CRLF ; $content .= "住 所 :" . $address02 . $CRLF ; $content .= "電話番号:" . $tel . $CRLF ; $content .= "メール :" . $mail_address01 . $CRLF ; $content .= "本 文 :" . $comment . $CRLF ; mb_language("ja"); mb_internal_encoding("SJIS"); mb_send_mail($send_mail_address, $subject, $content, "From:".$mail_address01); : : : } ?>
mb_language()とかmb_internal_encoding()、mb_send_mail()も、対携帯電話とか扱うと難しそう。エンコぐらい統一しろよ、とつい言いたくなる…。
それよかIE6、7、8...
コイツらだけに効果のあるウ◯ルス作ってばらまいて全部クラ◯シュしてやりたい気分。。(注、やりません)
最後に。HTMLのフォームとPHPでの簡単な取得までしか知らなかった私ですが、仕事で使うと覚えるの早かったです。数十分で大体理解できたと思います。もちろん全部自分で調べてです。(ちなみに私、PHPに関しては今回の受講生とほぼ同時スタートです。)