お問い合わせ
サンプルテキスト
全画面で共通です。削除してもOK。
if ($debug) { ?> } ?> $subject = '[sample]お問い合わせ';?> $mailto = 'sales@analogengine.jp,snich@mac.com';?>//:MailBody:
//メール本文の始まり
$body_head = <<
/*ここからは入力処理分岐*/
$R = $_POST;
/*入力処理分岐ここで終わり*/
?> if (!$mode) { ?> if ($debug) { ?>
単発の文章。
お問い合わせ頂く場合は、お手数ですが、下記のフォームよりご送信ください。
*印の付いた項目は必須です。必要事項をご記入の上、確認画面へ進んで下さい。 } elseif ($mode == 'check') { /* 確認画面 パラメータチェック処理 */ //現在のキー一覧を取得しておく $all_keys = array_keys($R); //送信有効フラグ $submit_ok = true; ?> if ($debug) { ?>
//空要素チェック用。
function empFilter($x) { return !$x; }
?>
【ここから送信フォーム】
} ?>単発の文章。
お問い合わせ頂く場合は、お手数ですが、下記のフォームよりご送信ください。
*印の付いた項目は必須です。必要事項をご記入の上、確認画面へ進んで下さい。 } elseif ($mode == 'check') { /* 確認画面 パラメータチェック処理 */ //現在のキー一覧を取得しておく $all_keys = array_keys($R); //送信有効フラグ $submit_ok = true; ?> if ($debug) { ?>
【ここから確認画面】
} ?>
ご記入頂いた内容にお間違いのないことをご確認の上、送信して下さい。
} elseif ($mode == 'mailsend') { /* ここからメール送信処理 */ $body_body = ''; foreach ($R as $key => $value) { if (preg_match("/^mode|submit$/" , $key)) { continue; } $value = $R[$key]; $value = trim($value); $value = mb_convert_kana($value, "aKV", "UTF-8"); $body_body .= "$key : $value\n"; } //メール本文を作る $body = "$body_head\n$body_body\n$body_foot"; $subject = mb_convert_encoding($subject, 'JIS', 'UTF-8'); $body = mb_convert_encoding($body, 'JIS', 'UTF-8'); $subject = base64_encode($subject); $subject = '=?ISO-2022-JP?B?' . $subject . '?='; //mb_language("Japanese"); $from = $R['email'] ? $R['email'] : 'nobody@on.the.net'; // SECFIX-HEADERINJ 20260818: strip CRLF & validate From header if (is_array($from)) { $from = 'nobody@on.the.net'; } $from = preg_replace('/[\r\n\t].*$/s', '', (string)$from); if (!preg_match('/^[A-Za-z0-9_.+\-]+@[A-Za-z0-9_.\-]+$/', $from)) { $from = 'nobody@on.the.net'; } // SECFIX-ANTISPAM 20260819: honeypot + referer + per-IP rate limit if (!empty($_POST['hp_contact_url'])) { header('HTTP/1.1 200 OK'); exit; } $__as_h = isset($_SERVER['HTTP_HOST']) ? $_SERVER['HTTP_HOST'] : ''; $__as_r = isset($_SERVER['HTTP_REFERER']) ? $_SERVER['HTTP_REFERER'] : ''; if ($__as_h !== '' && $__as_r !== '' && stripos($__as_r, $__as_h) === false) { header('HTTP/1.1 403 Forbidden'); exit('forbidden'); } $__as_ip = preg_replace('/[^0-9A-Fa-f:.]/', '', isset($_SERVER['REMOTE_ADDR']) ? $_SERVER['REMOTE_ADDR'] : 'x'); $__as_f = sys_get_temp_dir() . '/fmrl_' . substr(md5($__as_ip), 0, 16); $__as_now = time(); $__as_a = array(); if (is_file($__as_f)) { $__as_a = array_filter(array_map('intval', explode(',', (string)@file_get_contents($__as_f))), function($t) use ($__as_now){ return $t > $__as_now - 3600; }); } if (count($__as_a) >= 12) { header('HTTP/1.1 429 Too Many Requests'); exit('too many requests'); } $__as_a[] = $__as_now; @file_put_contents($__as_f, implode(',', $__as_a), LOCK_EX); if (!mail($mailto, $subject, $body, "From: $from\r\nContent-Type: Text/Plain;charset=iso-2022-jp")) { error('送信に失敗しました。'); } ?> if ($debug) { echo '【送信完了画面】
'; } ?>
【送信完了】
ご利用ありがとうございました。
} function error($errmsg, $errhead) { if (!$errhead) { $errhead = 'エラー'; } ?> if ($debug) { echo '【エラー画面】
'; } ?>
