PHP GET 错误返回 null

标签 php get

错误网址GET http://xxxx/getSoru.php?notin=66733,17234,65585,16126,1790,45282,2522504,36297,66733,17234,65585,16126,45282,25613,44739 ,43419,19521,49195,34736,59717,3701,11671,24810,12358,66733,17234,65585,16126,1790,45282,25613,27092,60758,21701,44739,5403 6,20215,63234,59201,43419 ,19521,49195,34736,59717,3701,11671,24810,12358,19600,67182,47380,43313,4421,44779,32417,39457,48284,19056,35821,11085,1230 6,22573,12131,19561,61720 ,3923,43192,28483,8768,26383,3758,54901,32784,1109,6860,36101,375,1547,16996,15377,37769,5248,8171,25155,49890,8658,22504,3 6297

没有错误网址GET http://xxxx/getSoru.php?notin=66733,17234,65585,16126,1790,45282,2522504,36297,66733,17234,65585,16126,45282,25613, 44739,43419,19521,49195,34736,59717,3701,11671,24810,12358,66733,17234,65585,16126,1790,45282,25613,27092,60758,21701,44739 ,54036,20215,63234,59201, 43419,19521,49195,34736,59717,3701,11671,24810,12358,19600,67182,47380,43313,4421,44779,32417,39457,48284,19056,35821,11085 ,12306,22573,12131,19561, 61720,3923,43192,28483,8768,26383,3758,54901,32784,1109,6860,36101,375,1547,16996,15377,37769,5248,8171,25155,49890,8658,22 504

删除36297号码或url中的任何号码都没有问题 getSoru.php 文件

<?php
$notin = $_GET['notin'];
echo $notin;
?>

我没有收到 414 Request-URI Too Long 错误

为什么返回空?

最佳答案

如果您urlencode() 无错误 URL 字符串,您将得到以下内容:

66733%2C17234%2C65585%2C16126%2C1790%2C45282%2C2522504%2C36297%2C66733%2C17234%2C65585%2C16126%2C45282%2C25613%2C44739%2C43419%2C19521%2C49195%2C34736%2C59717%2C3701%2C11671%2C24810%2C12358%2C66733%2C17234%2C65585%2C16126%2C1790%2C45282%2C25613%2C27092%2C60758%2C21701%2C44739%2C54036%2C20215%2C63234%2C59201%2C43419%2C19521%2C49195%2C34736%2C59717%2C3701%2C11671%2C24810%2C12358%2C19600%2C67182%2C47380%2C43313%2C4421%2C44779%2C32417%2C39457%2C48284%2C19056%2C35821%2C11085%2C12306%2C22573%2C12131%2C19561%2C61720%2C3923%2C43192%2C28483%2C8768%2C26383%2C3758%2C54901%2C32784%2C1109%2C6860%2C36101%2C375%2C1547%2C16996%2C15377%2C37769%2C5248%2C8171%2C25155%2C49890%2C8658%2C22504

如果您随后使用 echo $_GET['notin'] 将其传递到 URL 中,它显示字符串计数为 507 的正确值:

66733,17234,65585,16126,1790,45282,2522504,36297,66733,17234,65585,16126,45282,25613,44739,43419,19521,49195,34736,59717,3701,11671,24810,12358,66733,17234,65585,16126,1790,45282,25613,27092,60758,21701,44739,54036,20215,63234,59201,43419,19521,49195,34736,59717,3701,11671,24810,12358,19600,67182,47380,43313,4421,44779,32417,39457,48284,19056,35821,11085,12306,22573,12131,19561,61720,3923,43192,28483,8768,26383,3758,54901,32784,1109,6860,36101,375,1547,16996,15377,37769,5248,8171,25155,49890,8658,22504

如果您使用下面的内容对错误 URL 执行相同的操作,您将得到 513 的字符串计数,这意味着如果 suhosin 补丁,您的字符数超出了默认字符限制已安装。

66733%2C17234%2C65585%2C16126%2C1790%2C45282%2C2522504%2C36297%2C66733%2C17234%2C65585%2C16126%2C45282%2C25613%2C44739%2C43419%2C19521%2C49195%2C34736%2C59717%2C3701%2C11671%2C24810%2C12358%2C66733%2C17234%2C65585%2C16126%2C1790%2C45282%2C25613%2C27092%2C60758%2C21701%2C44739%2C54036%2C20215%2C63234%2C59201%2C43419%2C19521%2C49195%2C34736%2C59717%2C3701%2C11671%2C24810%2C12358%2C19600%2C67182%2C47380%2C43313%2C4421%2C44779%2C32417%2C39457%2C48284%2C19056%2C35821%2C11085%2C12306%2C22573%2C12131%2C19561%2C61720%2C3923%2C43192%2C28483%2C8768%2C26383%2C3758%2C54901%2C32784%2C1109%2C6860%2C36101%2C375%2C1547%2C16996%2C15377%2C37769%2C5248%2C8171%2C25155%2C49890%2C8658%2C22504%2C36297

我怀疑您安装了 suhosin 补丁,因此您需要通过更改 PHP.ini 中的以下内容来扩展此限制:

suhosin.get.max_value_length = <limit>

参见:

http://php.net/manual/en/reserved.variables.get.php

关于PHP GET 错误返回 null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41383318/

相关文章:

php - 我的数组发生了什么?项目消失

php - 表单自动提交ajax不工作

PHP/jQuery/AJAX 表单更新最佳实践

javascript - PHP -> jQuery -> AJAX 表单验证

mysql - 如何从每个数据库(MySQL)的 information_Schema 中获取 n 行

c++ - 为什么我的代码无法识别空行 C++

php - 非常简单的 RewriteRule 不起作用

android - 从 GET 获取状态码 400

php - 如何在 symfony2 中为实体 ManyToOne 关系嵌入表单?

java - 为 Java HTTP GET 解码 InputStream