2012-03-12 21 views
18

私のページのフォームから私のサーバーへのPOSTデータが新しいPHP警告を受け取っています。警告は次のとおりです。PHP警告:不明:入力変数が1000を超えました

PHP警告:不明:入力変数が1000を超えました。php.iniのmax_input_varsの変更を増やすには、次のようにします。ライン0に不明で、リファラ:https://mywebsite.com/index.php

事は私のフォームは1000個の、入力変数の近くに持っていないということですので、私はこれが表示されている理由として困惑しています。補足として、私は最近までこの問題を抱えていませんでした。私が実行したときに、yum updateが変更された/これが原因でインストールされたと思われます。どんなアドバイスや答えもありがとうございます。

EDIT 1: だから私はvar_dump($_REQUEST)をして、1000文字の文字列を得ました。配列内の最初のカップルアイテムは必要なものですが、私が提出する必要のない一連のものは1つの文字列に分解されています。歓迎します。

array(1001) { 
    ["action"]=> string(10) "step1_show" 
    ["submit"]=> string(6) "Step 1" 
    [0]=> string(1) "a" 
    [1]=> string(1) "c" 
    [2]=> string(1) "t" 
    [3]=> string(1) "i" 
    [4]=> string(1) "o" 
    [5]=> string(1) "n" 
    [6]=> string(1) "=" 
    [7]=> string(1) "l" 
    [8]=> string(1) "o" 
    [9]=> string(1) "g" 
    [10]=> string(1) "o" 
    [11]=> string(1) "u" 
    [12]=> string(1) "t" 
    [13]=> string(1) "&" 
    [14]=> string(1) "p" 
    [15]=> string(1) "r" 
    [16]=> string(1) "o" 
    [17]=> string(1) "p" 
    [18]=> string(1) "e" 
    [19]=> string(1) "r" 
    [20]=> string(1) "t" 
    [21]=> string(1) "y" 
    [22]=> string(1) "=" 
    [23]=> string(1) "3" 
    [24]=> string(1) "7" 
    [25]=> .....  

ANSWER:それは私の提出ハンドラに問題があることになりました。入力いただきありがとうございます。

+2

フォームを参照する必要があります。 – DanRedux

+4

'var_dump($ _REQUEST)'を試してください。 – Travesty3

+1

この機能はPHP 5.3で導入されました。あなたのフォームを表示できますか?上記のように –

答えて

41

これは、PHPスクリプトに対する攻撃を防ぐためのセキュリティアップデートに関連するPHPの新しい設定値です。PHP 5.3.9が設定されていない/利用可能になる前に、これを取得します。suhosinユーザも同様のことをします年齢から)。

入力値は種類が異なり、配列メンバーもカウントされます。したがって、フォームフィールドを数えるだけでなく、入力に関連するURLやその他の場所を調べるだけでは不十分です($_GET$_POST$_SERVER$_ENV$_FILES$_COOKIE ...)。

max_input_varsを参照してください:

input variablesが受理することができるどのように多くの。このディレクティブを使用すると、ハッシュコリジョンを使用するDoS攻撃の可能性が軽減されます。このディレクティブで指定されたより多くの入力変数がある場合、E_WARNINGが発行され、さらに入力変数が要求から切り捨てられます。この制限は、多次元入力配列の各入れ子レベルにのみ適用されます。 .ajaxSubmitを使用するときに、フォームをシリアル化するとき、私は)(

をこの同じ問題を抱えていた

+0

入手しました。問題は、特定のフォームに関係のないアイテムをサーバーに投稿しているように見えます。ポストリクエストを見るとFirebugの@Darhazerがいくつかの問題を示しています。ありがとう – Jon

+0

PHPのアップグレードによる品質管理 - 面白い;)あなたは犯人を見つけてうれしいです。 – hakre

-5

、(代わりに.serializeの.serializeObject()を使用)

あなたはhere

からライブラリをつかむことができます
+0

間違った言語ですか? – 472084

-1

Webホストの管理パネル(Littleoak)からmax_input_varsの問題を修正しました max_input_vars = 0max_input_vars = 6000に変更しました。 サーバ会社が設定したサーバにphpのインストールがいくつかあります。 max_input_vars = 0は、電子メールスパム送信者がサーバーを使用してスパムを送信しないようにすることだと思います。 php.iniファイルはどこかにありますが、どこにいるのかはわかりませんが、私はサイト管理者のcPanelで変更できました。

関連する問題