亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

表單有 1900 多個字段,由于 php html 中的查詢字符串限制,無法使用 post 方法提交

表單有 1900 多個字段,由于 php html 中的查詢字符串限制,無法使用 post 方法提交

PHP
江戶川亂折騰 2022-01-02 16:05:00
我有超過 1900 個輸入框列的動態表,我無法通過表單提交提交所有字段,它只通過 60% 的行來保存頁面在 php 中。我猜它的查詢字符串長度限制。我已經.htaccess使用以下代碼在網站文件夾中添加了文件:RewriteEngine onphp_value post_max_size 512M即使我php.ini在public_html文件夾中添加了文件:file_uploads = Onphp_value post_max_size = 512Mupload_max_filesize = 512Mmax_input_vars 2000我有 Godaddy 的共享托管服務器。我已經盡力了,但表單只提交了 60% 的字段。即使我已經更改了 C 面板中 php Selector 選項中 post_max_size 值的值。
查看完整描述

1 回答

?
蕭十郎

TA貢獻1815條經驗 獲得超13個贊

如果您使用 GET,您肯定會遇到瀏覽器的字符限制。


相反,您應該在表單中使用POST 方法,例如


<form action="http://example.com" method="post">

當然,您max_input_vars應該超過您的字段最大金額。此設置限制了 superglobals $_GET,$_POST并$_COOKIE單獨使用。


如果您仍在使用 POST,則應驗證您的max_input_vars設置是否處于活動狀態:


<?php

echo "max_input_vars: " . ini_get('max_input_vars') . PHP_EOL;

echo "post_max_size: " . ini_get('post_max_size') . PHP_EOL;

?>

你說你添加php.ini到public_html. 通常php.ini不位于此文件夾中(可能是您的主機的特殊內容??。?。似乎您的 php.ini 格式不正確,因為您使用了 .htaccess 關鍵字,php_value并且您忘記對.htaccess使用等號max_input_vars。


如果您的 php.ini 不起作用,您應該嘗試將所有設置添加到您的 .htaccess 中,如下所示:


php_value post_max_size 512M

php_value max_input_vars 2000

正如@NigelRen 建議的那樣,您也可以拆分請求以減少字段總數。這可以通過使用AJAX來解決。它允許在不重新加載頁面的情況下向服務器發送請求。實現這一點的一個很好的 JavaScript 框架可能是jQuery。通過這種方式,您可以在失去焦點后更新單個字段,或者添加一個單獨的更新按鈕,該按鈕僅將這些行發送到已更改的服務器(例如,每個輸入都會獲得一個 ID,并且您計算所有具有焦點的行)。使用此方法,您還可以使用簡單循環限制發送到服務器的字段數量(例如,每個循環僅更新 100 個字段)。


另一種方法是分頁。這意味著您每頁僅顯示 x 行,因此用戶只能更新這些 x 行。


我建議使用 AJAX,因為它會顯著降低性能要求。


查看完整回答
反對 回復 2022-01-02
  • 1 回答
  • 0 關注
  • 147 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號