source: branches/comu-utf8/html/contact/index.php @ 16016

Revision 16016, 8.0 KB checked in by adachi, 15 years ago (diff)

branches/comuをマージ

Line 
1<?php
2/*
3 * Copyright(c) 2000-2007 LOCKON CO.,LTD. All Rights Reserved.
4 *
5 * http://www.lockon.co.jp/
6 */
7require_once("../require.php");
8
9class LC_Page {
10    function LC_Page() {
11        $this->tpl_css = URL_DIR.'css/layout/contact/index.css';    // メインCSSパス
12        $this->tpl_mainpage = 'contact/index.tpl';
13        $this->tpl_title = 'お問い合わせ(入力ページ)';
14        $this->tpl_page_category = 'contact';
15        global $arrPref;
16        $this->arrPref = $arrPref;
17    }
18}
19
20$conn = new SC_DBConn();
21$objPage = new LC_Page();
22$objView = new SC_SiteView();
23$objCampaignSess = new SC_CampaignSession();
24$CONF = sf_getBasisData();          // 店舗基本情報
25sfDomainSessionStart(); 
26
27$objCustomer = new SC_Customer();
28
29if ($objCustomer->isloginSuccess()){
30    $objPage->arrData = $_SESSION['customer'];
31}
32
33//SSLURL判定
34if (SSLURL_CHECK == 1){
35    $ssl_url= sfRmDupSlash(SSL_URL.$_SERVER['REQUEST_URI']);
36    if (!ereg("^https://", $non_ssl_url)){
37        sfDispSiteError(URL_ERROR);
38    }
39}
40
41// レイアウトデザインを取得
42$objPage = sfGetPageLayout($objPage, false, DEF_LAYOUT);
43
44//フォーム値変換用カラム
45$arrConvertColumn = array(
46                             array(  "column" => "name01",      "convert" => "aKV" ),
47                             array(  "column" => "name02",      "convert" => "aKV" ),
48                             array(  "column" => "kana01",      "convert" => "CKV" ),
49                             array(  "column" => "kana02",      "convert" => "CKV" ),
50                             array(  "column" => "zip01",       "convert" => "n" ),
51                             array(  "column" => "zip02",       "convert" => "n" ),
52                             array(  "column" => "pref",        "convert" => "n" ),
53                             array(  "column" => "addr01",      "convert" => "aKV" ),
54                             array(  "column" => "addr02",      "convert" => "aKV" ),
55                             array(  "column" => "email",       "convert" => "a" ),
56                             array(  "column" => "tel01",       "convert" => "n" ),
57                             array(  "column" => "tel02",       "convert" => "n" ),
58                             array(  "column" => "tel03",       "convert" => "n" ),
59                             array(  "column" => "contents",   "convert" => "aKV")
60                          );
61
62switch ($_POST['mode']){
63    case 'confirm':
64    // エラーチェック
65    $objPage->arrForm = $_POST;
66    $objPage->arrForm['email'] = strtolower($_POST['email']);
67    $objPage->arrForm = lfConvertParam($objPage->arrForm,$arrConvertColumn);
68    $objPage->arrErr = lfErrorCheck($objPage->arrForm);
69    if ( ! $objPage->arrErr ){
70        // エラー無しで完了画面
71        $objPage->tpl_mainpage = 'contact/confirm.tpl';
72        $objPage->tpl_title = 'お問い合わせ(確認ページ)';
73    } else {
74        foreach ($objPage->arrForm as $key => $val){
75        $objPage->$key = $val;
76        }
77    }
78    break;
79   
80    case 'return':
81    foreach ($_POST as $key => $val){
82        $objPage->$key = $val;
83        }
84    break;
85   
86    case 'complete':
87    $objPage->arrForm = $_POST;
88    $objPage->arrForm['email'] = strtolower($_POST['email']);
89    $objPage->arrForm = lfConvertParam($objPage->arrForm,$arrConvertColumn);
90    $objPage->arrErr = lfErrorCheck($objPage->arrForm);
91    if(!$objPage->arrErr) {
92        lfSendMail($CONF, $objPage);
93        //完了ページへ移動する
94        header("location: " . sfGetCurrentUri() . "/complete.php");
95        exit;
96    } else {
97        sfDispSiteError(CUSTOMER_ERROR);
98    }
99    break;
100   
101    default:
102    break;
103}
104
105//---- ページ表示
106$objView->assignobj($objPage);
107// フレームを選択(キャンペーンページから遷移なら変更)
108$objCampaignSess->pageView($objView);
109//------------------------------------------------------------------------------------------------------------------------------------------
110
111//エラーチェック処理部
112function lfErrorCheck($array) {
113    $objErr = new SC_CheckError($array);
114    $objErr->doFunc(array("お名前(姓)", 'name01', STEXT_LEN), array("EXIST_CHECK","SPTAB_CHECK","MAX_LENGTH_CHECK"));
115    $objErr->doFunc(array("お名前(名)", 'name02', STEXT_LEN), array("EXIST_CHECK","SPTAB_CHECK","MAX_LENGTH_CHECK"));
116    $objErr->doFunc(array("フリガナ(セイ)", 'kana01', STEXT_LEN), array("EXIST_CHECK","SPTAB_CHECK","MAX_LENGTH_CHECK", "KANA_CHECK"));
117    $objErr->doFunc(array("フリガナ(メイ)", 'kana02', STEXT_LEN), array("EXIST_CHECK","SPTAB_CHECK","MAX_LENGTH_CHECK", "KANA_CHECK"));
118    $objErr->doFunc(array("郵便番号1", "zip01", ZIP01_LEN ) ,array("SPTAB_CHECK" ,"NUM_CHECK", "NUM_COUNT_CHECK"));
119    $objErr->doFunc(array("郵便番号2", "zip02", ZIP02_LEN ) ,array("SPTAB_CHECK" ,"NUM_CHECK", "NUM_COUNT_CHECK"));
120    $objErr->doFunc(array("ご住所1", "addr01", MTEXT_LEN), array("SPTAB_CHECK" ,"MAX_LENGTH_CHECK"));
121    $objErr->doFunc(array("ご住所2", "addr02", MTEXT_LEN), array("SPTAB_CHECK" ,"MAX_LENGTH_CHECK"));
122    $objErr->doFunc(array("お問い合わせ内容", "contents", MLTEXT_LEN), array("EXIST_CHECK", "MAX_LENGTH_CHECK"));
123    $objErr->doFunc(array('メールアドレス', "email", MTEXT_LEN) ,array("EXIST_CHECK", "EMAIL_CHECK", "EMAIL_CHAR_CHECK", "MAX_LENGTH_CHECK"));
124    $objErr->doFunc(array('メールアドレス(確認)', "email02", MTEXT_LEN) ,array("EXIST_CHECK", "EMAIL_CHECK", "EMAIL_CHAR_CHECK", "MAX_LENGTH_CHECK"));
125    $objErr->doFunc(array('メールアドレス', 'メールアドレス(確認)', "email", "email02") ,array("EQUAL_CHECK"));
126    $objErr->doFunc(array("お電話番号1", 'tel01', TEL_ITEM_LEN), array("NUM_CHECK", "MAX_LENGTH_CHECK"));
127    $objErr->doFunc(array("お電話番号2", 'tel02', TEL_ITEM_LEN), array("NUM_CHECK", "MAX_LENGTH_CHECK"));
128    $objErr->doFunc(array("お電話番号3", 'tel03', TEL_ITEM_LEN), array("NUM_CHECK", "MAX_LENGTH_CHECK"));
129   
130    if (REVIEW_ALLOW_URL == false) {
131        // URLの入力を禁止
132        global $arrReviewDenyURL;
133        $objErr->doFunc(array("URL", "contents", $arrReviewDenyURL), array("PROHIBITED_STR_CHECK"));
134    }
135   
136    return $objErr->arrErr;
137}
138
139//---- 取得文字列の変換
140function lfConvertParam($array, $arrConvertColumn) {
141    /*
142     *  文字列の変換
143     *  K :  「半角(ハンカク)片仮名」を「全角片仮名」に変換
144     *  C :  「全角ひら仮名」を「全角かた仮名」に変換
145     *  V :  濁点付きの文字を一文字に変換。"K","H"と共に使用します
146     *  n :  「全角」数字を「半角(ハンカク)」に変換
147     *  a :  全角英数字を半角英数字に変換する
148     */
149    // カラム名とコンバート情報
150    foreach ($arrConvertColumn as $data) {
151        $arrConvList[ $data["column"] ] = $data["convert"];
152    }
153   
154    // 文字変換
155    foreach ($arrConvList as $key => $val) {
156        // POSTされてきた値のみ変換する。
157        if(strlen(($array[$key])) > 0) {
158            $array[$key] = mb_convert_kana($array[$key] ,$val);
159        }
160    }
161    return $array;
162}
163
164// ------------  メール送信 ------------
165
166function lfSendMail($CONF, $objPage){
167    // パスワード変更お知らせメール送信
168   
169    $objMailText = new SC_SiteView();
170    $objSiteInfo = $objView->objSiteInfo;
171    $arrInfo = $objSiteInfo->data;
172    $objPage->tpl_shopname=$arrInfo['shop_name'];
173    $objPage->tpl_infoemail = $arrInfo['email02'];
174    $objMailText->assignobj($objPage);
175    $toCustomerMail = $objMailText->fetch("mail_templates/contact_mail.tpl");
176    $objMail = new GC_SendMail();
177   
178    if ( $objPage->arrForm['email'] ) {
179        $fromMail_name = $objPage->arrForm['name01'] ." 様";
180        $fromMail_address = $objPage->arrForm['email'];
181    } else {
182        $fromMail_name = $CONF["shop_name"];
183        $fromMail_address = $CONF["email02"];
184    }
185    $subject = sfMakeSubject("お問い合わせがありました。");
186    $objMail->setItem(
187                          $CONF["email02"]                  // 宛先
188                        , $subject                          // サブジェクト
189                        , $toCustomerMail                   // 本文
190                        , $fromMail_address                 // 配送元アドレス
191                        , $fromMail_name                    // 配送元 名前
192                        , $fromMail_address                 // reply_to
193                        , $CONF["email04"]                  // return_path
194                        , $CONF["email04"]                  //  Errors_to
195                                                        );
196    $objMail->sendMail();
197   
198    $subject = sfMakeSubject("お問い合わせを受け付けました。");
199    $objMail->setItem(
200                          ''                                // 宛先
201                        , $subject                          // サブジェクト
202                        , $toCustomerMail                   // 本文
203                        , $CONF["email03"]                  // 配送元アドレス
204                        , $CONF["shop_name"]                // 配送元 名前
205                        , $CONF["email02"]                  // reply_to
206                        , $CONF["email04"]                  // return_path
207                        , $CONF["email04"]                  //  Errors_to
208                                                        );
209    $objMail->setTo($objPage->arrForm['email'], $objPage->arrForm['name01'] ." 様");
210    $objMail->sendMail();   
211}
212?>
Note: See TracBrowser for help on using the repository browser.