Changeset 22924
- Timestamp:
- 2013/06/29 23:45:03 (11 years ago)
- Location:
- branches/version-2_13-dev/data/class/pages
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/version-2_13-dev/data/class/pages/LC_Page.php
r22857 r22924 74 74 var $plugin_activate_flg = PLUGIN_ACTIVATE_FLAG; 75 75 76 /** POST に限定する mode */ 77 var $arrLimitPostMode = array(); 76 78 /** 77 79 * Page を初期化する. … … 115 117 function process() 116 118 { 119 // POST に限定された mode か検証する。 120 $this->checkLimitPostMode(); 117 121 } 118 122 … … 369 373 * リクエストパラメーター 'mode' を取得する. 370 374 * 371 * 1. $_GET['mode'] の値を取得する. 372 * 2. 1 が存在しない場合は $_POST['mode'] の値を取得する. 373 * 3. どちらも存在しない場合は null を返す. 375 * 1. $_REQUEST['mode'] の値を取得する. 376 * 2. 存在しない場合は null を返す. 374 377 * 375 378 * mode に, 半角英数字とアンダーバー(_) 以外の文字列が検出された場合は null を … … 377 380 * 378 381 * @access protected 379 * @return string $_GET['mode'] 又は $_POST['mode'] の文字列382 * @return string|null $_REQUEST['mode'] の文字列 380 383 */ 381 384 function getMode() … … 383 386 $pattern = '/^[a-zA-Z0-9_]+$/'; 384 387 $mode = null; 385 if (isset($_GET['mode']) && preg_match($pattern, $_GET['mode'])) { 386 $mode = $_GET['mode']; 387 } elseif (isset($_POST['mode']) && preg_match($pattern, $_POST['mode'])) { 388 $mode = $_POST['mode']; 388 if (isset($_REQUEST['mode']) && preg_match($pattern, $_REQUEST['mode'])) { 389 $mode = $_REQUEST['mode']; 389 390 } 390 391 … … 462 463 SC_Utils_Ex::sfPrintR($val); 463 464 } 465 466 /** 467 * POST に限定された mode か検証する。 468 * 469 * POST 以外で、POST に限定された mode を実行しようとした場合、落とす。 470 * @return void 471 */ 472 function checkLimitPostMode() { 473 if ($_SERVER['REQUEST_METHOD'] !== 'POST' && in_array($mode = $this->getMode(), $this->arrLimitPostMode)) { 474 $msg = "REQUEST_METHOD=[{$_SERVER['REQUEST_METHOD']}]では実行不能な mode=[$mode] が指定されました。"; 475 trigger_error($msg, E_USER_ERROR); 476 } 477 } 464 478 } -
branches/version-2_13-dev/data/class/pages/products/LC_Page_Products_Detail.php
r22857 r22924 70 70 $this->arrDELIVERYDATE = $masterData->getMasterData('mtb_delivery_date'); 71 71 $this->arrRECOMMEND = $masterData->getMasterData('mtb_recommend'); 72 73 // POST に限定する mode 74 $this->arrLimitPostMode[] = 'cart'; 75 $this->arrLimitPostMode[] = 'add_favorite'; 76 $this->arrLimitPostMode[] = 'add_favorite_sphone'; 77 $this->arrLimitPostMode[] = 'select'; 78 $this->arrLimitPostMode[] = 'select2'; 79 $this->arrLimitPostMode[] = 'selectItem'; 72 80 } 73 81
Note: See TracChangeset
for help on using the changeset viewer.