PHP filter_input无法接收AJAX提交值的问题求助
问题分析与解决办法
嘿,我一眼就发现问题所在了!你在使用filter_input时犯了一个很容易忽略的拼写错误,这就是导致变量始终为null的核心原因。
核心问题:过滤器常量拼写错误
你写的FILTER_SANATIZE_STRING是错的——正确的常量名称应该是FILTER_SANITIZE_STRING(注意中间的字母i,你写成a了)!
PHP无法识别这个拼写错误的常量,所以filter_input直接返回了null。而当你改用$_POST['userid']和$_POST['feedback']时,不需要依赖这个常量,自然能正常获取到提交的值。
修正后的代码示例
// 修正拼写错误后的正确代码 $userID = filter_input(INPUT_POST, "userid", FILTER_SANITIZE_INT); $feedback = filter_input(INPUT_POST, "feedback", FILTER_SANITIZE_STRING);
额外排查建议(若后续再遇到类似问题)
如果之后使用filter_input仍出现返回null的情况,还可以检查以下几点:
- 确认AJAX请求确实使用的是POST方法,而非GET(
INPUT_POST只针对POST请求) - 检查请求的
Content-Type:如果是application/json格式提交的数据,INPUT_POST无法直接获取,需要通过file_get_contents('php://input')解析后再处理 - 查看
php.ini中的filter.default等相关配置,确保没有全局过滤规则影响取值
内容的提问来源于stack exchange,提问作者Michael Chuuuuuuuuuuuuuuuuuuuu
相关产品推荐
相关产品推荐

