gpt4 book ai didi

php - 为什么 PHP 循环在 250 次循环后会导致禁止访问页面?

转载 作者:搜寻专家 更新时间:2023-10-31 22:05:31 25 4
gpt4 key购买 nike

已解决:该问题与 max_input_vars 有关。我使用的服务器有一个名为“Suhosin”的安全框架。有两个值的功能与设置为 1,000 的 max_input_vars 非常相似。值为“suhosin.post.max_vars”和“suhosin.request.max_vars”。我将这些设置为 5,000,现在一切正常!

----------------


我目前有一个页面使用 PHP 显示一堆图像,图像下方有打印排序选项,然后“while”循环直到显示每个图像。它工作正常,显示每个图像。用户应该选择他们想要打印的内容,然后单击“提交”。这将通过页面 submit.php 发送表单。 Submit.php 通过将数据存储在数组中来生成他们选择的列表。然后将该数组内爆并以文本形式通过电子邮件发送到一个地址。为每个图像提交四个数组条目。使用 $_POST 发送数据

现在,如果在第一页上选择的图像少于 250 张,此功能将完美运行。如果选择了 250 个或更多,则 submit.php 页面将变为禁止错误页面,并且不会发送任何电子邮件。

我假设这是因为服务器将其视为一个无限循环,或者可能与它处理如此多的数组条目有关。我真的需要这个修好。有谁知道任何解决方案?

编辑 - 这是 submit.php 上的循环。我知道这可能不是最好的代码,我仍在学习。

编辑 2 - 我尝试将 max_input_vars 更改为 5000 但没有成功。我将它添加到我的 PHP.ini 文件中,该行以前不存在。我无法重启服务器,因为它是共享主机。还有其他想法吗?

编辑 3 - 好的,已经取得了一些重大进展。我不再收到禁止页面,但是当循环高于 250 时电子邮件不会发送。它仍然在 < 250 时成功发送。

$imgcount = $_SESSION['imgcount'];
$usercode = $_SESSION['usercode'];

// echo $imgcount . "<br><br>";
$extramessage = $_POST["message"];

$currentcount = 1;


$completeorder = array();

while ($currentcount <= $imgcount) {
$x = $_POST["print_amount_" . $currentcount . ""];
// echo "<b><u>Image " . $currentcount . "</u></b><br>";
// echo $x[0] . ", " . $x[1] . ", " . $x[2] . ", " . $x[3] . ", " . "<br><br>";
$y = (string) "Image " . $currentcount . " - " . $x[0] . ", " . $x[1] . ", " . $x[2] . ", " . $x[3] . "
";
// echo $y;
$completeorder[] = $y;
// echo $completeorder . "<br><br>";


$currentcount = $currentcount + 1;
};

$completeorder = implode( "\n", $completeorder );

最佳答案

你存储了很多变量,也许你到达了memory_limit您的 php.ini 设置。

尝试使用一些像这样的调试输出:

echo "Memory: ".memory_get_usage(true) . " - PEAK: ".memory_get_peak_usage(true) . " MAX: ".ini_get("memory_limit");

但真正奇怪的是你得到了一个禁止的页面......即使达到 php 或 ini_settings 的某些限制,您通常也会得到 Error 500 Internal Server Error。向浏览器显示可见输出(仅当 display_errors 启用时)。

所以也可能是您的网络服务器有某种限制,用禁止的页面回答什么。

关于php - 为什么 PHP 循环在 250 次循环后会导致禁止访问页面?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19291912/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com