お問い合わせ
//error_reporting(E_ALL | E_STRICT);
//--------------------------- 必須設定 -----------------------
//サイトのトップページのURL
$site_top = "http://as-jewelry.com//";
// 管理者メールアドレス
$to = "info@as-jewelry.com";
//フォームのメールアドレス入力箇所のname属性の値(name="○○" の○○部分)
$Email = "メールアドレス";
/*------------------------------------------------------------------------------------------------
以下スパム防止のための設定
※有効にするにはこのファイルとフォームページが同一ドメイン内にある必要があります
------------------------------------------------------------------------------------------------*/
//スパム防止のためのリファラチェック(フォームページが同一ドメインであるかどうかのチェック)(する=1, しない=0)
$Referer_check = 0;
//リファラチェックを「する」場合のドメイン ※以下例を参考に設置するサイトのドメインを指定して下さい。
$Referer_check_domain = "http://as-jewelry.com//";
//--------------------------- 必須設定 ここまで ------------------------------------
//---------------------- 任意設定 ------------------------
// 管理者宛のメールで差出人を送信者のメールアドレスにする(する=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://as-jewelry.com//";
// 必須入力項目を設定する(する=1, しない=0)
$requireCheck = 1;
/* 必須入力項目(入力フォームで指定したname属性の値を指定してください。(上記で1を設定した場合のみ)
値はシングルクォーテーションで囲み、複数の場合はカンマで区切ってください。フォーム側と順番を合わせると良いです */
$require = array('お名前','メールアドレス');
//----------------------------------------------------------------------
// 自動返信メール設定(START)
//----------------------------------------------------------------------
// 差出人に送信内容確認メール(自動返信メール)を送る(送る=1, 送らない=0)
// 送る場合は、フォーム側のメール入力欄のname属性の値が上記「$Email」で指定した値と同じである必要があります
$remail = 1;
//自動返信メールの送信者欄に表示される名前 ※あなたの名前や会社名など(もし自動返信メールの送信者名が文字化けする場合ここは空にしてください)
$refrom_name = "AS(エース) 365日、身につけていたい。大人リッチなデイリージュエリー。";
// 差出人に送信確認メールを送る場合のメールのタイトル(上記で1を設定した場合のみ)
$re_subject = "AS(エース) 365日、身につけていたい。大人リッチなデイリージュエリー。へお問合せありがとうございます";
//フォーム側の「名前」箇所のname属性の値 ※自動返信メールの「○○様」の表示で使用します。
//指定しない、または存在しない場合は、○○様と表示されないだけです。あえて無効にしてもOK
$dsp_name = 'お名前';
//自動返信メールの冒頭の文言 ※日本語部分のみ変更可
$remail_text = <<< TEXT
お問い合せをいただき、誠にありがとうございました。
\n
担当者よりメールを送信させていただきますので、今しばらくお待ちください。
お問い合せの内容によりましては、調査等に時間を必要とする場合がございます。
あらかじめご了承ください。
\n
[お問い合わせ内容]
TEXT;
//自動返信メールに署名(フッター)を表示(する=1, しない=0)※管理者宛にも表示されます。
$mailFooterDsp = 1;
//上記で「1」を選択時に表示する署名(フッター)(FOOTER~FOOTER;の間に記述してください)
$mailSignature = "\r\n\r\n";
$mailSignature .= "──────────────────────\r\n";
$mailSignature .= "AS(エース) 365日、身につけていたい。大人リッチなデイリージュエリー。\r\n";
$mailSignature .= "http://as-jewelry.com//\r\n";
$mailSignature .= "──────────────────────\r\n";
//----------------------------------------------------------------------
// 自動返信メール設定(END)
//----------------------------------------------------------------------
//メールアドレスの形式チェックを行うかどうか。(する=1, しない=0)
//※デフォルトは「する」。特に理由がなければ変更しないで下さい。メール入力欄のname属性の値が上記「$Email」で指定した値である必要があります。
$mail_check = 1;
//----------------------------------------------------------------------
// 添付ファイル処理用設定(BEGIN)
//----------------------------------------------------------------------
//ファイル添付機能を使用する場合は一時ファイルを保存する必要があるため
//確認画面の表示が必須になります。
$confirmDsp = 1;//確認画面を表示 ※必須
/* ----- 重要 ------*/
//ファイルアップ部分のnameの値は必ず配列の形 例 upfile[] としてください。
//※添付ファイルが1つでも
//添付ファイルは複数も可能です。
//例1 添付ファイルが1つの場合
//添付ファイル
//例2 添付ファイルが複数の場合
//添付ファイル1:
//添付ファイル2:
//添付ファイルのMAXファイルサイズ
//※単位バイト デフォルトは5MB(ただしサーバーのphp.iniの設定による)
$maxImgSize = 5024000;
//添付ファイル一時保存用ディレクトリ
//※書き込み可能なパーミッション(777等※サーバによる)にしてください
$tmp_dir_name = './common/tmp/';
//添付許可ファイル(拡張子)
//※大文字、小文字は区別されません(同じ扱い)のでここには小文字だけでOKです
//(拡張子を大文字で送信してもマッチします)
$permission_file = array('jpg','jpeg','gif','png','pdf','txt','xls','xlsx','zip','lzh','doc');
//フォームのファイル添付箇所のname属性の値
//の「upfile」部
$upfile_key = 'upfile';
//サーバー上の一時ファイルを削除する(する=1, しない=0) ※バックアップ目的で保存させておきたい場合など
//添付ファイルは確認画面表示時にtmpディレクトリに一旦保存されますが、それを送信時に削除するかどうか。
//(残す場合サーバー容量に余裕がある場合のみ推奨)
//もちろん手動での削除も可能です。
$tempFileDel = 1;//デフォルトは削除する
//確認画面→戻る→確認画面のページ遷移では最初の一時ファイルはサーバ上に残りますが、
//1時間後以降の最初の送信時に自動で削除されます。
//メールソフトで添付ファイル名が文字化けする場合には「1」にしてみてください。
//(ThuderBirdで日本語ファイル名文字化け対策)
//「1」にすると添付ファイル名が0~の連番になります。
$rename = 0;//(0 or 1)
//サーバーのphp.iniの「mail.add_x_header」がONかOFFかチェックを行う(する=1, しない=0) ※PHP5.3以降
//「する」場合、mail.add_x_headerがONの場合確認画面でメッセージが表示されます。
//mail.add_x_headerがONの場合、添付ファイルが正常に添付できない可能性が非常に高いためのチェックです。
//mail.add_x_headerはデフォルトは「OFF」ですが、サーバーによっては稀に「ON」になっているためです。
//mail.add_x_headerがONの場合でも正常に添付できていればこちらは「0」として下さい。メッセージは非表示となります。
$iniAddX = 1;
//----------------------------------------------------------------------
// 添付ファイル処理用設定(END)
//----------------------------------------------------------------------
//------------------------------- 任意設定ここまで ---------------------------------------------
//----------------------------------------------------------------------
// 関数実行、変数初期化
//----------------------------------------------------------------------
$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);
$send = 1;
}
$_POST["mailPage"] = 2;
}
//else if($confirmDsp == 1){
?>
if ((int)$_POST["mailPage"] == 0) {
?>
}
?>
if ((int)$_POST["mailPage"] == 1) {
unset($_POST["mailPage"]);
?>
if($empty_flag == 1){ ?>
- 入力にエラーがあります。
-
echo $errm; ?>
}else{ ?>
以下の内容で間違いがなければ「SEND」ボタンを押してください。
} ?>
}
?>
//}
if ((int)$_POST["mailPage"] == 2) {
if(($jumpPage == 0 && $sendmail == 1) || ($jumpPage == 0 && ($confirmDsp == 0 && $sendmail == 0))) {
?>
if($empty_flag == 1){ ?>
- 入力にエラーがあります。下記をご確認の上「BACK」ボタンにて修正をお願い致します。
-
echo $errm; ?>
-
}else{ ?>
- 送信は正常に完了しました。
-
copyright(); ?>
}
}
}
//確認画面無しの場合の表示、指定のページに移動する設定の場合、エラーチェックで問題が無ければ指定ページヘリダイレクト
else if(($jumpPage == 1 && $sendmail == 1) || $confirmDsp == 0) {
if($empty_flag == 1){
//----------------------------------------------------------------------
// 関数定義(START)
//----------------------------------------------------------------------
}else{ header("Location: ".$thanksPage); }
}
?>
function checkMail($str){
$mailaddress_array = explode('@',$str);
if(preg_match("/^[\.!#%&\-_0-9a-zA-Z\?\/\+]+\@[!#%&\-_0-9a-z]+(\.[!#%&\-_0-9a-z]+)+$/", "$str") && count($mailaddress_array) ==2){
return true;
}else{
return false;
}
}
function h($string) {
global $encode;
return htmlspecialchars($string, ENT_QUOTES,$encode);
}
function sanitize($arr){
if(is_array($arr)){
return array_map('sanitize',$arr);
}
return str_replace("\0","",$arr);
}
//Shift-JISの場合に誤変換文字の置換関数
function sjisReplace($arr,$encode){
foreach($arr as $key => $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 .= "";
}
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="お問合せフォームからメールが届きました\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']."corporate/contact.html\n";
}else{
$adminBody.="問い合わせのページURL:".@$arr['httpReferer']."corporate/contact.html\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\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 '';
}
//----------------------------------------------------------------------
// 関数定義(END)
//----------------------------------------------------------------------
?>