Changeset 22924 for branches/version-2_13-dev/data/class/pages/LC_Page.php
- Timestamp:
- 2013/06/29 23:45:03 (11 years ago)
- File:
-
- 1 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 }
Note: See TracChangeset
for help on using the changeset viewer.