PHP filter_input(INPUT_SERVER,’REQUEST_METHOD’)返回null?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了PHP filter_input(INPUT_SERVER,’REQUEST_METHOD’)返回null?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2057字,纯文字阅读大概需要3分钟。
内容图文
![PHP filter_input(INPUT_SERVER,’REQUEST_METHOD’)返回null?](/upload/InfoBanner/zyjiaocheng/698/fef27952e06b453fb30068605d76ffb2.jpg)
为什么这行在我的实时服务器中返回null?
filter_input(INPUT_SERVER, 'REQUEST_METHOD');
实时服务器是php5.5.9
我错过了什么吗?
我以为它用于替换下面的全局方法?
$_SERVER['REQUEST_METHOD'];
一些代码,
public function __construct()
{
// Construct other generic data.
$this->clientRequestMethod = filter_input(INPUT_GET, 'method'); // such as list, add, update, etc
$this->clientPostMethod = filter_input(INPUT_POST, 'method'); // such as update
$this->serverRequestMethod = filter_input(INPUT_SERVER, 'REQUEST_METHOD'); //such as get or post
}
public function processEntry()
{
// Determine the $_SERVER['REQUEST_METHOD'] whether it is post or get.
if ($this->serverRequestMethod === 'POST' && $this->clientPostMethod != null)
{
$this->processPost();
}
else if($this->serverRequestMethod === 'GET' && $this->clientRequestMethod != null)
{
$this->processRequest();
}
}
解决方法:
所以问题/错误是这样的:
使用FASTCGI时,filter_input()不适用于INPUT_SERVER或INPUT_ENV
这个bug已经被人们所知多年了,我没有发现它被解决了.我找到了几个解决方法,但没有完整的解决方案,所以我将最好的解决方案填入了这个帮助函数,以实现项目范围的解决方案.为了提供某种程度的安全性并避免火车残骸,该函数会回退到filter_var(),其中filter_input()失败.它使用与本机filter_input()函数相同的格式,以便轻松集成到项目中,并且如果错误得到修复,将来很容易删除.
function filter_input_fix ($type, $variable_name, $filter = FILTER_DEFAULT, $options = NULL )
{
$checkTypes =[
INPUT_GET,
INPUT_POST,
INPUT_COOKIE
];
if ($options === NULL) {
// No idea if this should be here or not
// Maybe someone could let me know if this should be removed?
$options = FILTER_NULL_ON_FAILURE;
}
if (in_array($type, $checkTypes) || filter_has_var($type, $variable_name)) {
return filter_input($type, $variable_name, $filter, $options);
} else if ($type == INPUT_SERVER && isset($_SERVER[$variable_name])) {
return filter_var($_SERVER[$variable_name], $filter, $options);
} else if ($type == INPUT_ENV && isset($_ENV[$variable_name])) {
return filter_var($_ENV[$variable_name], $filter, $options);
} else {
return NULL;
}
}
这似乎是最好的解决方案.如果它包含可能导致问题的错误,请告诉我.
内容总结
以上是互联网集市为您收集整理的PHP filter_input(INPUT_SERVER,’REQUEST_METHOD’)返回null?全部内容,希望文章能够帮你解决PHP filter_input(INPUT_SERVER,’REQUEST_METHOD’)返回null?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。