2011-11-14 17 views
1

フォームにこの問題があります。この新しいサーバーでフォームを送信すると、406エラーが発生します。エラー406 - 受け入れられない - PHP投稿(%)

私はこのサーバーのFTPにしかアクセスできないため、変更する必要があります。 mod_securityのがこれを行うことによって有効になっている場合

私がチェックしました:

<IfModule mod_security.c> 

... Perform some kind of redirect or re-writing in here ... 

</IfModule> 

それはとてもリダイレクトされませんでした、それはmod_securityのがインストールされていないことを意味しますか? IfModuleタグの外でリダイレクトを実行すると、問題なくリダイレ​​クトされます。

私はちょうど任意のフィールドに%を入力し、それがエラーを表示していまし提出]をクリックし、あなたたちはテストするためのテストフォームを作成しました。アルファベット文字は大丈夫です。エラーは表示されません。

(削除リンク)

また、私は私のhtaccessファイルでこれを追加しましたし、問題がまだそこにあります。

<IfModule mod_security.c> 
     SecFilterEngine Off 
     SecFilterScanPOST Off 
</IfModule> 

ここで問題と思われるものは何ですか?

+0

好奇心の渦中に、ブロックなしでフィルタをオフにするとどうなりますか? –

+0

これで試してみましょう – officeboi101

+0

Suhosinがインストールされていますか? –

答えて

0

編集:私の元の答え。

This is your problem

あなたは、容易に入手可能な PHPの関数を使用してデータを消毒になるはずです。彼らは同様にあなたを助けるかもしれない

このSO質問here, at PHP.net.を見つけることができます。運のベスト

Sanitizing strings to make them URL and filename safe?

私はここで的外れwayyyました。謝罪いたします。あなたの位置で

、私は単に私のウェブホストに連絡するだろう - 彼らはあなたの.htaccessファイルは、その特定のディレクティブを上書きできるようにすることはできません。さらに、あなたはFTPアクセスしか持っていないので、とにかくそれに依存しているようです。

もう一度、運がよい。それはあなたのウェブサーバではないので、あなたはあなたのホストの慈悲を受けています。

+0

OPにApacheの問題があるようですPHPの問題ではありません。もし、apacheがリクエストを拒否しているのであれば、PHPで修正できるものではないでしょう。 –

+0

@FrankFarmer - うん。 POSTではなくGET文字列であると仮定しました。私が知る限り、PHPはすべてのものをURLエンコードする必要がありますが、何かが間違っていた可能性があります。解決策を探しています。 –

+0

@FrankFarmer将来の読者のために私の答えを編集しました。 –

1

私は同じ問題を抱えていました。エンコードが原因でした。フォームフィールドに鋭いアクセント記号が付いていた場合は失敗し、406エラーが表示されます。ファイルをUTF-8に変換し、UTF-8メタタグを追加しました。これで問題なく動作します。

関連する問題