Example #1
0
                    //				echo "File is valid, and was successfully uploaded.\n";
                } else {
                    //				echo "Possible file upload attack!\n";
                }
                $_SESSION['SFM'][$name] = $_uploadname;
            } else {
                $_SESSION['SFM'][$name] = '';
                $_SESSION['SFM'][$name . 'err'] = '__Error_Upload__';
                //			$error = 1;
            }
            //			__Error_Upload__
        }
        $_SESSION['SFM']['InputErr'] = $error;
        $sfm_script = $script_name . (SID ? '?' . strip_tags(SID) : '');
        $sfm_html = $sfm_class->formDataHtml();
        $sfm_submit = mb_convert_encoding(printSubmit(), $baseEnc, $internalEnc);
        include_once $temp_html['confirm'];
        break;
    default:
        // 入力フォーム表示
        session_cache_limiter('private_no_expire');
        session_start();
        unset($_SESSION['SFM']);
        $sfm_script = $script_name;
        include_once $temp_html['form'];
}
exit;
// クラス定義
class sfmClass
{
    function sfmClass()
Example #2
0
 function SbFormMailClass($cfg)
 {
     $this->cfg = $cfg;
     if (!extension_loaded('mbstring')) {
         $this->exitErr('マルチバイト関数が利用できません。');
     }
     mb_language('ja');
     mb_internal_encoding($cfg['internal_enc']);
     // リバースプロクシに対応
     $_SERVER['HTTP_HOST'] = isset($_SERVER['HTTP_X_FORWARDED_HOST']) ? $_SERVER['HTTP_X_FORWARDED_HOST'] : $_SERVER['HTTP_HOST'];
     $_SERVER['REMOTE_ADDR'] = isset($_SERVER['HTTP_X_FORWARDED_FOR']) ? $_SERVER['HTTP_X_FORWARDED_FOR'] : $_SERVER['REMOTE_ADDR'];
     $_SERVER['SERVER_NAME'] = isset($_SERVER['HTTP_X_FORWARDED_SERVER']) ? $_SERVER['HTTP_X_FORWARDED_SERVER'] : $_SERVER['SERVER_NAME'];
     // スクリプト名を取得
     $cfg['script_name'] = preg_replace('/.+\\/(.*)/', "\$1", $_SERVER['REQUEST_URI']);
     // 受け取りアドレスの設定をチェック
     if (!isset($cfg['mailTo'][0])) {
         $this->exitErr('受取先メールアドレスが設定されてません。');
     }
     // モードによる条件分岐
     $mode = '';
     if (isset($_POST['mode'])) {
         $mode = $_POST['mode'];
     }
     if (isset($_POST['back'])) {
         $mode = 'BACK';
     }
     switch ($mode) {
         // メール送信
         case 'SEND':
             session_cache_limiter('nocache');
             session_start();
             if (!isset($_SESSION['SFM'])) {
                 $this->exitErr('セッション情報が失われました。一度ブラウザを閉じて下さい。', 1);
             }
             $sfm_mail = $this->formDataMail();
             $sfm_userinfo = $this->userInfo();
             $mailToNum = $_SESSION['SFM']['mailToNum'];
             $cfg['mailTo'] = isset($cfg['mailTo'][$mailToNum]) ? $cfg['mailTo'][$mailToNum] : $cfg['mailTo'][0];
             // 指定先にメール送信
             $mailFrom = !isset($_SESSION['SFM']['email']) ? 'S.B.Formmail' : $_SESSION['SFM']['email'];
             require_once $cfg['temp_html']['mail'];
             $this->sendMail($cfg['mailTo'], $mailSubject, $mailMessage, $mailFrom, $cfg['mailBcc']);
             // メール自動返信
             if ((isset($_POST['autoReply']) || isset($_SESSION['SFM']['autoReply'])) && isset($_SESSION['SFM']['email']) && is_file($cfg['temp_html']['reply'])) {
                 require_once $cfg['temp_html']['reply'];
                 $replyAddress = $cfg['replyAddress'] ? $cfg['replyAddress'] : $cfg['mailTo'];
                 if ($cfg['replyName']) {
                     $replyAddress = "{$cfg['replyName']} <{$replyAddress}>";
                 }
                 $this->sendMail($_SESSION['SFM']['email'], $replySubject, $replyMessage, $replyAddress, $cfg['replyBcc']);
             }
             unset($_SESSION['SFM']);
             $_SESSION['SFM_TransCheck'] = 1;
             //				require_once($cfg['temp_html']['completion']);
             header('Location: http://racle-cl.jp/sp/consultation/thanks.html');
             break;
             // データ処理と確認
         // データ処理と確認
         case 'CONFIRM':
             session_cache_limiter('private_no_expire');
             session_start();
             if ($cfg['resendCheck'] == 1 && $_SESSION['SFM_TransCheck'] == 1) {
                 $this->exitErr('送信が完了していますので、一度ブラウザを閉じて下さい。', 1);
                 //} elseif ($_SESSION['SFM_TransCheck'] < 0) {
                 //	$this->exitErr('著作権表記を確認して下さい。', 1);
             }
             if (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] != '' || preg_match('/secure|ssl/i', $_SERVER['HTTP_HOST']) || $cfg['use_ssl'] == 1) {
                 $protcol = 'https://';
             } else {
                 $protcol = 'http://';
             }
             if (!preg_match("/{$_SERVER['HTTP_HOST']}/", $_SERVER['HTTP_REFERER']) && $cfg['ref_check']) {
                 $this->exitErr('外部ドメインからの利用はできません');
             }
             unset($_SESSION['SFM']);
             $error = $email = '';
             foreach ($_POST as $key => $value) {
                 $name = preg_replace('/(.+)_s$/', "\$1", $key);
                 if ($value == 'none') {
                     $value = '';
                 }
                 if (is_array($value)) {
                     // mod start
                     //						$value = $this->valueMarge($key, $value, $cfg['name_marge']);
                     //						if ($value == '__Error_Marge_Data__') {
                     //							$error = 1;
                     //						}
                     if (preg_match('/day(.+)$/', $key)) {
                         $m = $value[0];
                         $d = $value[1];
                         $t = $value[2];
                         if ($m == "" && $d == "") {
                             $value = '';
                         } elseif ($m == "" xor $d == "") {
                             $_SESSION['SFM'][$name] = $value = '__Error_Date__';
                             $error = 1;
                         } else {
                             $value = $m . mb_convert_encoding('月', 'UTF-8', 'EUC-JP') . $d . mb_convert_encoding('日', 'UTF-8', 'EUC-JP');
                             if ($t) {
                                 $value .= $t . mb_convert_encoding('頃', 'UTF-8', 'EUC-JP');
                             }
                             $_SESSION['SFM'][$name] = $value;
                         }
                     } else {
                         $value = $this->valueMarge($key, $value, $cfg['name_marge']);
                         if ($value == '__Error_Marge_Data__') {
                             $error = 1;
                         }
                     }
                     // mod end
                 }
                 if (!$cfg['ill_slash']) {
                     $value = !get_magic_quotes_gpc() ? addslashes($value) : $value;
                 }
                 if (!$cfg['ill_char']) {
                     $value = mb_convert_encoding($value, $cfg['internal_enc'], $cfg['baseEnc']);
                 }
                 $value = mb_convert_kana($value, 'KV', $cfg['internal_enc']);
                 if (preg_match('/_s$/', $key) && $value == '') {
                     $_SESSION['SFM'][$name] = '__Error_Input_Data__';
                     $error = 1;
                     // add start
                 } elseif ($name == 'kana') {
                     $subject = mb_convert_encoding($value, 'UTF-8', 'EUC-JP');
                     $subject = str_replace(" ", "", $subject);
                     $pattern = mb_convert_encoding('/[^ァ-ヶー\\s ]+/u', 'UTF-8', 'EUC-JP');
                     if (preg_match($pattern, $subject)) {
                         $_SESSION['SFM']['kana'] = '__Error_Kana_Data__';
                         $error = 1;
                     } else {
                         $_SESSION['SFM']['kana'] = $kana = $value;
                     }
                 } elseif ($name == 'tel' && $value != '' && !(preg_match("/^[0-9]{2,4}-[0-9]{2,4}-[0-9]{3,4}\$/", $value) || preg_match("/^0\\d{9,10}\$/", $value))) {
                     $_SESSION['SFM'][$name] = '__Error_Tel__';
                     $error = 1;
                 } elseif ($name == 'email' && $value == '') {
                     $_SESSION['SFM'][$name] = '__Error_Input_Data__';
                     $error = 1;
                     // add end
                 } elseif ($name == 'email' && $value) {
                     if (!preg_match("/^[\\w\\-\\.]+\\@[\\w\\-\\.]+\\.([a-z]+)\$/", $value)) {
                         $_SESSION['SFM']['email'] = '__Error_Mail_Address__';
                         $error = $email = 1;
                     } else {
                         $_SESSION['SFM']['email'] = $email = $value;
                     }
                 } elseif ($name == 'emailcheck') {
                     if ($email != 1 && $email != $value) {
                         $_SESSION['SFM']['email'] = '__Error_Mail_Check__';
                         $error = 1;
                     }
                 } elseif ($cfg['maxText'] && strlen($value) > $cfg['maxText']) {
                     $_SESSION['SFM'][$name] = '__Error_Text_Max__';
                     $error = 1;
                 } else {
                     $_SESSION['SFM'][$name] = $value;
                 }
             }
             $_SESSION['SFM']['InputErr'] = $error;
             $sfm_script = $cfg['script_name'];
             $sfm_html = $this->formDataHtml();
             $sfm_submit = mb_convert_encoding(printSubmit($error), $cfg['baseEnc'], $cfg['internal_enc']);
             session_write_close();
             session_cache_limiter('nocache');
             session_start();
             require_once $cfg['temp_html']['confirm'];
             break;
             // 入力フォーム表示
         // 入力フォーム表示
         default:
             session_cache_limiter('private_no_expire');
             session_start();
             if ($mode != 'BACK') {
                 unset($_SESSION['SFM']);
             }
             $sfm_script = $cfg['script_name'];
             $_SESSION['SFM_TransCheck'] = 0;
             require_once $cfg['temp_html']['form'];
             break;
     }
 }
printApiDocLink('dossier');
?>
        </form>
    </fieldset>

    <fieldset>
        <legend>Search sources</legend>
        <form action="search-sources">
            <?php 
printSelectex('sources', 'name');
?>
            <?php 
printLimit();
?>
            <?php 
printSubmit();
?>
            <?php 
printApiDocLink('sources');
?>
        </form>
    </fieldset>

    <fieldset>
        <legend>Get source</legend>
        <form action="source">
            <input type="text" name="source-id" style="width: 80px"/>
            <br/><br/>
            <input type="submit" onclick="DrPublishApiClientExmample.submitForm(this); return false;" val="Show source"/>
            <?php 
printApiDocLink('source');