改进Request类支持PATCH请求变量获取 改进请求类型伪造后的数据获取

This commit is contained in:
thinkphp
2016-07-20 14:31:58 +08:00
parent ab5dfcf111
commit 8a5f4ff402

View File

@@ -83,7 +83,6 @@ class Request
protected $request = []; protected $request = [];
protected $route = []; protected $route = [];
protected $put; protected $put;
protected $delete;
protected $session = []; protected $session = [];
protected $file = []; protected $file = [];
protected $cookie = []; protected $cookie = [];
@@ -490,6 +489,7 @@ class Request
} elseif (!$this->method) { } elseif (!$this->method) {
if (isset($_POST[Config::get('var_method')])) { if (isset($_POST[Config::get('var_method')])) {
$this->method = strtoupper($_POST[Config::get('var_method')]); $this->method = strtoupper($_POST[Config::get('var_method')]);
$this->{$this->method}($_POST);
} elseif (isset($_SERVER['HTTP_X_HTTP_METHOD_OVERRIDE'])) { } elseif (isset($_SERVER['HTTP_X_HTTP_METHOD_OVERRIDE'])) {
$this->method = strtoupper($_SERVER['HTTP_X_HTTP_METHOD_OVERRIDE']); $this->method = strtoupper($_SERVER['HTTP_X_HTTP_METHOD_OVERRIDE']);
} else { } else {
@@ -612,10 +612,9 @@ class Request
$vars = $this->post(false); $vars = $this->post(false);
break; break;
case 'PUT': case 'PUT':
$vars = $this->put(false);
break;
case 'DELETE': case 'DELETE':
$vars = $this->delete(false); case 'PATCH':
$vars = $this->put(false);
break; break;
default: default:
$vars = []; $vars = [];
@@ -718,13 +717,20 @@ class Request
*/ */
public function delete($name = '', $default = null, $filter = null) public function delete($name = '', $default = null, $filter = null)
{ {
if (is_array($name)) { return $this->put($name, $default, $filter);
return $this->delete = is_null($this->delete) ? $name : array_merge($this->delete, $name); }
}
if (is_null($this->delete)) { /**
parse_str(file_get_contents('php://input'), $this->delete); * 设置获取获取PATCH参数
} * @access public
return $this->input($this->delete, $name, $default, $filter); * @param string|array $name 变量名
* @param mixed $default 默认值
* @param string|array $filter 过滤方法
* @return mixed
*/
public function patch($name = '', $default = null, $filter = null)
{
return $this->put($name, $default, $filter);
} }
/** /**