WebデザインノートBOOK

Webクリエイターに関する勉強を書き記したブログになります。

メールフォーム〜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に関しては今回の受講生とほぼ同時スタートです。)