=')) {//PHP5.1.0以上の場合のみタイムゾーンを定義 date_default_timezone_set('Asia/Tokyo');//タイムゾーンの設定(日本以外の場合には適宜設定ください) } /*------------------------------------------------------------------------------------------------------------------- * ★以下設定時の注意点  * ・値(=の後)は数字以外の文字列(一部を除く)はダブルクオーテーション「"」、または「'」で囲んでいます。 * ・これをを外したり削除したりしないでください。後ろのセミコロン「;」も削除しないください。 * ・また先頭に「$」が付いた文字列は変更しないでください。数字の1または0で設定しているものは必ず半角数字で設定下さい。 * ・メールアドレスのname属性の値が「Email」ではない場合、以下必須設定箇所の「$Email」の値も変更下さい。 * ・name属性の値に半角スペースは使用できません。 *以上のことを間違えてしまうとプログラムが動作しなくなりますので注意下さい。 -------------------------------------------------------------------------------------------------------------------*/ //--------------------------- 必須設定 必ず設定してください ----------------------- //サイトのトップページのURL ※デフォルトでは送信完了後に「トップページへ戻る」ボタンが表示されますので $site_top = "http://www.php-factory.net/"; // 管理者メールアドレス ※メールを受け取るメールアドレス(複数指定する場合は「,」で区切ってください 例 $to = "aa@aa.aa,bb@bb.bb";) $to = "xxxxxxxxxx@xxx.xxx"; //フォームのメールアドレス入力箇所のname属性の値(name="○○" の○○部分) $Email = "Email"; /*------------------------------------------------------------------------------------------------ 以下スパム防止のための設定  ※有効にするにはこのファイルとフォームページが同一ドメイン内にある必要があります ------------------------------------------------------------------------------------------------*/ //スパム防止のためのリファラチェック(フォームページが同一ドメインであるかどうかのチェック)(する=1, しない=0) $Referer_check = 0; //リファラチェックを「する」場合のドメイン ※以下例を参考に設置するサイトのドメインを指定して下さい。 $Referer_check_domain = "php-factory.net"; //--------------------------- 必須設定 ここまで ------------------------------------ //---------------------- 任意設定 以下は必要に応じて設定してください ------------------------ // 管理者宛のメールで差出人を送信者のメールアドレスにする(する=1, しない=0) // する場合は、メール入力欄のname属性の値を「$Email」で指定した値にしてください。 //メーラーなどで返信する場合に便利なので「する」がおすすめです。 $userMail = 1; // Bccで送るメールアドレス(複数指定する場合は「,」で区切ってください 例 $BccMail = "aa@aa.aa,bb@bb.bb";) $BccMail = ""; // 管理者宛に送信されるメールのタイトル(件名) $subject = "ホームページのお問い合わせ"; // 送信確認画面の表示(する=1, しない=0) $confirmDsp = 1; // 送信完了後に自動的に指定のページ(サンクスページなど)に移動する(する=1, しない=0) // CV率を解析したい場合などはサンクスページを別途用意し、URLをこの下の項目で指定してください。 // 0にすると、デフォルトの送信完了画面が表示されます。 $jumpPage = 0; // 送信完了後に表示するページURL(上記で1を設定した場合のみ)※httpから始まるURLで指定ください。 $thanksPage = "http://xxx.xxxxxxxxx/thanks.html"; // 必須入力項目を設定する(する=1, しない=0) $requireCheck = 0; /* 必須入力項目(入力フォームで指定したname属性の値を指定してください。(上記で1を設定した場合のみ) 値はシングルクォーテーションで囲み、複数の場合はカンマで区切ってください。フォーム側と順番を合わせると良いです */ $require = array('お名前','Email'); //---------------------------------------------------------------------- // 自動返信メール設定(START) //---------------------------------------------------------------------- // 差出人に送信内容確認メール(自動返信メール)を送る(送る=1, 送らない=0) // 送る場合は、フォーム側のメール入力欄のname属性の値が上記「$Email」で指定した値と同じである必要があります $remail = 0; //自動返信メールの送信者欄に表示される名前 ※あなたの名前や会社名など(もし自動返信メールの送信者名が文字化けする場合ここは空にしてください) $refrom_name = ""; // 差出人に送信確認メールを送る場合のメールのタイトル(上記で1を設定した場合のみ) $re_subject = "送信ありがとうございました"; //フォーム側の「名前」箇所のname属性の値 ※自動返信メールの「○○様」の表示で使用します。 //指定しない、または存在しない場合は、○○様と表示されないだけです。あえて無効にしてもOK $dsp_name = 'お名前'; //自動返信メールの冒頭の文言 ※日本語部分のみ変更可 $remail_text = <<< TEXT お問い合わせありがとうございました。 早急にご返信致しますので今しばらくお待ちください。 送信内容は以下になります。 TEXT; //自動返信メールに署名(フッター)を表示(する=1, しない=0)※管理者宛にも表示されます。 $mailFooterDsp = 0; //上記で「1」を選択時に表示する署名(フッター)(FOOTER~FOOTER;の間に記述してください) $mailSignature = <<< FOOTER ────────────────────── 株式会社○○○○ 佐藤太郎 〒150-XXXX 東京都○○区○○  ○○ビル○F  TEL:03- XXXX - XXXX  FAX:03- XXXX - XXXX 携帯:090- XXXX - XXXX   E-mail:xxxx@xxxx.com URL: http://www.php-factory.net/ ────────────────────── FOOTER; //---------------------------------------------------------------------- // 自動返信メール設定(END) //---------------------------------------------------------------------- //メールアドレスの形式チェックを行うかどうか。(する=1, しない=0) //※デフォルトは「する」。特に理由がなければ変更しないで下さい。メール入力欄のname属性の値が上記「$Email」で指定した値である必要があります。 $mail_check = 1; //------------------------------- 任意設定ここまで --------------------------------------------- // 以下の変更は知識のある方のみ自己責任でお願いします。 //---------------------------------------------------------------------- // 関数実行、変数初期化 //---------------------------------------------------------------------- $encode = "UTF-8";//このファイルの文字コード定義(変更不可) if(isset($_GET)) $_GET = sanitize($_GET);//NULLバイト除去// if(isset($_POST)) $_POST = sanitize($_POST);//NULLバイト除去// if(isset($_COOKIE)) $_COOKIE = sanitize($_COOKIE);//NULLバイト除去// if($encode == 'SJIS') $_POST = sjisReplace($_POST,$encode);//Shift-JISの場合に誤変換文字の置換実行 $funcRefererCheck = refererCheck($Referer_check,$Referer_check_domain);//リファラチェック実行 //変数初期化 $sendmail = 0; $empty_flag = 0; $post_mail = ''; $errm =''; $header =''; if($requireCheck == 1) { $requireResArray = requireCheck($require);//必須チェック実行し返り値を受け取る $errm = $requireResArray['errm']; $empty_flag = $requireResArray['empty_flag']; } //メールアドレスチェック if(empty($errm)){ foreach($_POST as $key=>$val) { if($val == "confirm_submit") $sendmail = 1; if($key == $Email) $post_mail = h($val); if($key == $Email && $mail_check == 1 && !empty($val)){ if(!checkMail($val)){ $errm .= "

【".$key."】はメールアドレスの形式が正しくありません。

\n"; $empty_flag = 1; } } } } //差出人に届くメールをセット if($remail == 1) { $userBody = mailToUser($_POST,$dsp_name,$remail_text,$mailFooterDsp,$mailSignature,$encode); $reheader = userHeader($refrom_name,$to,$encode); $re_subject = "=?iso-2022-jp?B?".base64_encode(mb_convert_encoding($re_subject,"JIS",$encode))."?="; } //管理者宛に届くメールをセット $adminBody = mailToAdmin($_POST,$subject,$mailFooterDsp,$mailSignature,$encode,$confirmDsp); $header = adminHeader($userMail,$post_mail,$BccMail,$to); $subject = "=?iso-2022-jp?B?".base64_encode(mb_convert_encoding($subject,"JIS",$encode))."?="; if(($confirmDsp == 0 || $sendmail == 1) && $empty_flag != 1){ mail($to,$subject,$adminBody,$header); if($remail == 1) mail($post_mail,$re_subject,$userBody,$reheader); } else if($confirmDsp == 1){ /* ▼▼▼送信確認画面のレイアウト※編集可 オリジナルのデザインも適用可能▼▼▼ */ ?> 確認画面

入力にエラーがあります。下記をご確認の上「戻る」ボタンにて修正をお願い致します。



確認画面

以下の内容で間違いがなければ、「送信する」ボタンを押してください。

完了画面

入力にエラーがあります。下記をご確認の上「戻る」ボタンにて修正をお願い致します。



送信ありがとうございました。
送信は正常に完了しました。

トップページへ戻る»

入力にエラーがあります。下記をご確認の上「戻る」ボタンにて修正をお願い致します。



$val){ $key = str_replace('\','ー',$key); $resArray[$key] = $val; } return $resArray; } //送信メールにPOSTデータをセットする関数 function postToMail($arr){ $resArray = ''; foreach($arr as $key => $val){ $out = ''; if(is_array($val)){ foreach($val as $item){ $out .= $item . ', '; } $out = rtrim($out,', '); }else{ $out = $val; } if(get_magic_quotes_gpc()) { $out = stripslashes($out); } if($out != "confirm_submit" && $key != "httpReferer") { $resArray .= "【 ".$key." 】 ".$out."\n"; } } return $resArray; } //確認画面の入力内容出力用関数 function confirmOutput($arr){ $html = ''; foreach($arr as $key => $val) { $out = ''; if(is_array($val)){ foreach($val as $item){ $out .= $item . ', '; } $out = rtrim($out,', '); }else { $out = $val; }//チェックボックス(配列)追記ここまで if(get_magic_quotes_gpc()) { $out = stripslashes($out); } $out = nl2br(h($out));//※追記 改行コードを
タグに変換 $key = h($key); $html .= "".$key."".$out; $html .= '","
"),"",$out).'" />'; $html .= "\n"; } return $html; } //管理者宛送信メールヘッダ function adminHeader($userMail,$post_mail,$BccMail,$to){ $header = ''; if($userMail == 1 && !empty($post_mail)) { $header="From: $post_mail\n"; if($BccMail != '') { $header.="Bcc: $BccMail\n"; } $header.="Reply-To: ".$post_mail."\n"; }else { if($BccMail != '') { $header="Bcc: $BccMail\n"; } $header.="Reply-To: ".$to."\n"; } $header.="Content-Type:text/plain;charset=iso-2022-jp\nX-Mailer: PHP/".phpversion(); return $header; } //管理者宛送信メールボディ function mailToAdmin($arr,$subject,$mailFooterDsp,$mailSignature,$encode,$confirmDsp){ $adminBody="「".$subject."」からメールが届きました\n\n"; $adminBody .="===========================\n\n"; $adminBody.= postToMail($arr);//POSTデータを関数からセット $adminBody.="\n===========================\n"; $adminBody.="送信された日時:".date( "Y/m/d (D) H:i:s", time() )."\n"; $adminBody.="送信者のIPアドレス:".@$_SERVER["REMOTE_ADDR"]."\n"; $adminBody.="送信者のホスト名:".getHostByAddr(getenv('REMOTE_ADDR'))."\n"; if($confirmDsp != 1){ $adminBody.="問い合わせのページURL:".@$_SERVER['HTTP_REFERER']."\n"; }else{ $adminBody.="問い合わせのページURL:".@$arr['httpReferer']."\n"; } if($mailFooterDsp == 1) $adminBody.= $mailSignature; return mb_convert_encoding($adminBody,"JIS",$encode); } //ユーザ宛送信メールヘッダ function userHeader($refrom_name,$to,$encode){ $reheader = "From: "; if(!empty($refrom_name)){ $default_internal_encode = mb_internal_encoding(); if($default_internal_encode != $encode){ mb_internal_encoding($encode); } $reheader .= mb_encode_mimeheader($refrom_name)." <".$to.">\nReply-To: ".$to; }else{ $reheader .= "$to\nReply-To: ".$to; } $reheader .= "\nContent-Type: text/plain;charset=iso-2022-jp\nX-Mailer: PHP/".phpversion(); return $reheader; } //ユーザ宛送信メールボディ function mailToUser($arr,$dsp_name,$remail_text,$mailFooterDsp,$mailSignature,$encode){ $userBody = ''; if(isset($arr[$dsp_name])) $userBody = h($arr[$dsp_name]). " 様\n"; $userBody.= $remail_text; $userBody.="\n===========================\n\n"; $userBody.= postToMail($arr);//POSTデータを関数からセット $userBody.="\n===========================\n\n"; $userBody.="送信日時:".date( "Y/m/d (D) H:i:s", time() )."\n"; if($mailFooterDsp == 1) $userBody.= $mailSignature; return mb_convert_encoding($userBody,"JIS",$encode); } //必須チェック関数 function requireCheck($require){ $res['errm'] = ''; $res['empty_flag'] = 0; foreach($require as $requireVal){ $existsFalg = ''; foreach($_POST as $key => $val) { if($key == $requireVal && empty($val)) { $res['errm'] .= "

【".$key."】は必須入力項目です。

\n"; $res['empty_flag'] = 1; $existsFalg = 1; break; }elseif($requireVal == $key){ $existsFalg = 1; break; } } if($existsFalg != 1){ $res['errm'] .= "

【".$requireVal."】が未選択です。

\n"; $res['empty_flag'] = 1; } } return $res;//連想配列で値を返す } //リファラチェック function refererCheck($Referer_check,$Referer_check_domain){ if($Referer_check == 1 && !empty($Referer_check_domain)){ if(strpos($_SERVER['HTTP_REFERER'],$Referer_check_domain) === false){ return exit('

リファラチェックエラー。フォームページのドメインとこのファイルのドメインが一致しません

'); } } } function copyright(){ echo '- PHP工房 -'; } //---------------------------------------------------------------------- // 関数定義(END) //---------------------------------------------------------------------- ?>