mugenloop

Icon

プログラミングやウェブツールの作成、公開をしています。

PHPで問い合わせフォーム

簡単に使えるPHPで作成したフリーのメールフォームのサンプルです。
3行目と4行目を自分の環境に書き換えて使用してください。

<?php

  $site = 'マイサイト名';
  $mail = 'xxx@xxx.com';

  $mail_name = @$_POST['mail_name'];
  $mail_addr = @$_POST['mail_addr'];
  $mail_subj = @$_POST['mail_subj'];
  $mail_body = @$_POST['mail_body'];

  $error = '';
  $mess = '';

  if ($_SERVER["REQUEST_METHOD"] == "POST") {
    if (empty($mail_name) === true) {
      $error = '名前が入力されていません。';
    } elseif (empty($mail_addr) === true) {
      $error = 'メールアドレスが入力されていません。';
    } elseif (
      (ereg("^[{a-zA-Z0-9}_\.\-]+@([{a-zA-Z0-9}_\-\.]+\.[{a-zA-Z0-9}]+$)", $mail_addr, $regs) === false) ||
      (getmxrr($regs[1], $mxha) === false)) {
      $error = 'メールアドレスが不正です。';
    } elseif (!$mail_subj) {
      $error = 'タイトルが入力されていません。';
    } elseif (!$mail_body) {
      $error = '本文が入力されていません。';
    } else {
      mb_internal_encoding("utf-8");
      mb_language("japanese");
      $result = @mb_send_mail(
        $mail,
        $site . ' 問い合わせメール',
        '送信者情報' . "\n" .
        'IPアドレス     : ' . $_SERVER["REMOTE_ADDR"] . "\n" .
        'UserAgent      : ' . $_SERVER["HTTP_USER_AGENT"] . "\n" .
        "\n" .
        '問い合わせ内容' . "\n" .
        '名前 : ' . $mail_name . "\n" .
        'メールアドレス : ' . $mail_addr . "\n" .
        'タイトル : ' . $mail_subj . "\n" .
        '本文 : ' . "\n" . $mail_body,
        'From: ' . $mail_addr);
      if ($result === false) {
        $error = 'メールの送信に失敗しました。';
      } else {
        $mess =  'メールの送信が完了しました。';
      }
    }
  }

  $contents = '<html>
<head>
  <title>コンタクトフォーム</title>
</head>
<body>' . ((empty($error) === true) ? '' : '<div style="color: #f00; font-weight: bold;">' . $error . '</div>') .
((empty($mess) === true) ? '' : '<div style="color: #00f; font-weight: bold;">' . $mess . '</div>') . '
  <form method="post" action="' . $_SERVER['PHP_SELF'] . '">
    <label for="mail_name">名前:</label>&nbsp;<span style="color: #f00;">*</span><br />
    <input type="text" name="mail_name" id="mail_name" size="30" value="' . $mail_name. '" ' . ((empty($mess) === true) ? '' : 'disabled') . ' /><br />
    <label for="mail_addr">メールアドレス:</label>&nbsp;<span style="color: #f00;">*</span><br />
    <input type="text" name="mail_addr" id="mail_addr" size="30" value="' . $mail_addr. '" ' . ((empty($mess) === true) ? '' : 'disabled') . ' /><br />
    <label for="mail_subj">タイトル:</label>&nbsp;<span style="color: #f00;">*</span><br />
    <input type="text" name="mail_subj" id="mail_subj" size="30" value="' . $mail_subj. '" ' . ((empty($mess) === true) ? '' : 'disabled') . ' /><br />
    <label for="mail_body">本文:</label>&nbsp;<span style="color: #f00;">*</span><br />
    <textarea name="mail_body" id="mail_body" rows="10" cols="50" ' . ((empty($mess) === true) ? '' : 'disabled') . '>' . $mail_body. '</textarea><br />
    <input type="hidden" name="mode" value="mail" />
    <input type="submit" name="mail" value="送信" onClick="this.disabled=true; this.form.submit();" ' . ((empty($mess) === true) ? '' : 'disabled') . ' />
  </form>
</body>
</html>
  ';

  print $contents;

?>