标签:
OSC上看了有人问怎么判断用户是GET来的还是POST来的,这里做个笔记
HTTP头里有一个Request Method,表示请求是GET还是POST
贴上一段代码YII的代码
// 返回当前请求的方法,请留意方法名称是大小写敏感的,按规范应转换为大写字母 public function getMethod() { // $this->methodParam 默认值为 ‘_method‘ // 如果指定 $_POST[‘_method‘] ,表示使用POST请求来模拟其他方法的请求。 // 此时 $_POST[‘_method‘] 即为所模拟的请求类型。 if (isset($_POST[$this->methodParam])) { return strtoupper($_POST[$this->methodParam]); // 或者使用 $_SERVER[‘HTTP_X_HTTP_METHOD_OVERRIDE‘] 的值作为方法名。 } elseif (isset($_SERVER[‘HTTP_X_HTTP_METHOD_OVERRIDE‘])) { return strtoupper($_SERVER[‘HTTP_X_HTTP_METHOD_OVERRIDE‘]); // 或者使用 $_SERVER[‘REQUEST_METHOD‘] 作为方法名,未指定时,默认为 GET 方法 } else { return isset($_SERVER[‘REQUEST_METHOD‘]) ? strtoupper($_SERVER[‘REQUEST_METHOD‘]) : ‘GET‘; } }
这个方法使用了3种方法来获取当前用户的请求,优先级从高到低依次为:
前面两种方法,主要是针对一些只支持GET和POST等有限方法的User Agent而设计的。
标签:
原文地址:http://my.oschina.net/dandinglong/blog/512168