我在編碼方面存在一些問題。我已經制作了一個文件恢復PHP腳本,允許用戶在文件名旁邊放置一個複選框 - 然後當他們點擊底部的「恢復」按鈕時,它將從備份恢復相關文件。HTML表單文章 - 使用具有長名稱屬性的複選框
不幸的是,似乎有一個問題。文件的完整路徑和名稱位於複選框的「名稱」屬性中 - 這樣,它就會作爲需要恢復的位置和文件傳遞給下一個腳本。
舉個例子:
<input type="checkbox" name="/backups/Sunday/111111111111-com/www/components/com_virtuemart/" />
參見 「name」 屬性是多長時間?在許多情況下,恢復工作 - 但一旦名稱屬性變長,它不再工作。在上述屬性中,「名稱」字段長度爲63個字符。
現在,如果另外一個是煉
<input type="checkbox" name="/backups/Sunday/111111111111-com/www/components/com_virtuemart/js/" />
上述 「name」 屬性是長67個字符。這是行不通的。
在POST數據發佈到的腳本上,我做了一個var_dump($ _ POST);看看輸出是什麼。在「name」屬性長度爲63個字符的第一種情況下,var_dump顯示它。但在屬性長度爲67個字符的第二種情況下,它不顯示它 - 因此該文件未被恢復。
有沒有辦法解決這個假設的屬性大小限制?我在網上查看,看到幾個帖子,其中有人說,「名稱」屬性的長度沒有限制 - 但顯然有一個。
謝謝!
好的 - 我想我已經在這裏發現了我自己的問題。 PHP與suhosin模塊一起安裝。我禁用suhosin模塊,它似乎工作正常。 現在我只需要弄清楚在模塊中更改哪個設置以允許長名稱。 –
問題已解決。原因是PHP中的Suhosin模塊。我不得不修改默認64的suhosin.post.max_name_length,也必須修改默認64的suhosin.request.max_varname_length。只修改其中的一個並不會導致問題;都必須從默認更改。 –
suhosin.post.max_name_length是你想要我相信的東西。你也會想要改變這個配置變量的相應的「請求」版本 – Lee