PHP對POST數據(總體數據大小限制以及字段限制)有幾個限制。當我遇到這些限制時,我目前沒有任何警告 - 除了缺少數據。PHP:檢查丟失/裁剪的POST數據
有沒有辦法來檢查PHP是否遇到了這些限制之一?
PHP對POST數據(總體數據大小限制以及字段限制)有幾個限制。當我遇到這些限制時,我目前沒有任何警告 - 除了缺少數據。PHP:檢查丟失/裁剪的POST數據
有沒有辦法來檢查PHP是否遇到了這些限制之一?
您需要更改錯誤報告級別,以便顯示警告,因爲在達到POST大小時會輸出警告。
error_reporting(E_ALL);
設定使用error_reporting到E_ALL
包括E_WARNING
,但你可以只使用E_WARNING
如果你不想被報道的其他錯誤。
如果您想要輸出錯誤,請確保您有display_errors
設置爲on
或1
。如果你不這樣做,你可以在本地使用display_errors(1);
無論你是否顯示錯誤,它們仍會被記錄到你的PHP錯誤日誌文件中。
您可以檢查或php.ini
或.htaccess
變化值:
有這個文件也是另一個限制:
您可以控制這些使用的.htaccess,就像這樣:
error_reporting(E_ALL);
:
php_value post_max_size 100M
而且使用檢查是否有錯誤,在處理過程
請注意,這是一個發展和部署的問題,因爲你的PHP腳本(甚至整個Apache服務器)可以被反向代理,反正可以有任意數量的中間代理對請求有限制並因此將其截斷。
因此,第一步是確保發佈請求大小的PHP限制在處理請求的服務器軟件鏈中最少。
然後,我建議您閱讀this question(以及答案和評論),以瞭解您可以做什麼以及平臺爲您提供什麼,特別是檢測此類錯誤有多麻煩且有點不可靠。無論如何,我認爲不應該讓用戶反饋關於輸入數據的反饋:畢竟,每件事都有一個限制(想想數據庫的列大小,磁盤空間等等),適當的大小更重要比發出錯誤消息。至少,我甚至不記得上次服務抱怨請求大小。如果您對文件上傳限制特別感興趣,相反,這是完全不同的事情,因爲在PHP腳本中,如果用戶達到了給定的限制,則更容易知道。
避免它的好方法,但OP會問他如何捕捉警告,而不是詢問如何增加大小以防止出現錯誤。 – Ryan
@Stanyer這就是說,在我看來,OP沒有意識到你可以增加限制。很好的答案。 – Jeemusu