// 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()
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');