• 締切済み

送信すると403エラーが出る

<?php //サーバ内のファイルの絶対パス $path = $_GET[path]; $source = file_get_contents($path); //$source = "ダミー"; ?> <html> <body> <?php print<<<END <form method="POST" action="$_SERVER[PHP_SELF]?path=$_GET[path]"> <textarea name="source">$source</textarea> <input type="submit" name="exe" value="実行" /> </form> END; ?> </body> </html> 大きめのデータを送信すると403エラーが出ます。 5行目のコメントを外すと正常に動きます。 簡略のためエンコードやHTMLエンティティの処理は省略してあります。 どうすれば解決できるでしょうか。 よろしくお願いします。

みんなの回答

  • memphis
  • ベストアンサー率40% (975/2395)
回答No.3

>大きめのデータをを送信すると 具体的には何バイト? そこにヒントがあると思います。 もしくはWEBサーバのアクセスログに何か残っていませんか?

すると、全ての回答が全文表示されます。
  • twin_shu
  • ベストアンサー率100% (10/10)
回答No.2

GETの上限値を超えているのではないでしょうか? 実際どういうデータを送信してるかはわかりませんが、GETはアドレス込みで1024バイトまでしか送信されず、それ以上は切られてしまうので、パラメータが中途半端になっておかしくなってるのではと思うのですが。 送受信をすべてPOSTにすれば、おそらく解消されるかと。 まあPOSTにもGETほどではないにしろ上限はありますが(^^;

すると、全ての回答が全文表示されます。
  • memphis
  • ベストアンサー率40% (975/2395)
回答No.1

処理がおかしい感じがします。 なぜ、フォームはPOSTなのに、GETの形式でパラメータを渡す? それを直せば解決しませんか?

KanjiTalk
質問者

補足

ありがとうございます。 しかし、状況は依然変わりませんでした・・・。 基本的にPOSTとGETは併用しても問題ないと思うのですが・・・。 <?php $path = $_GET[path] ? $_GET[path] : $_POST[path]; $source = file_get_contents($path); //$source = "ダミー"; ?> <html> <body> <?php print<<<END <form method="POST" action="$_SERVER[PHP_SELF]"> <textarea name="source">$source</textarea> <input type="hidden" name="path" value="$path" /> <input type="submit" name="exe" value="実行" /> </form> END; ?> </body> </html>

すると、全ての回答が全文表示されます。

関連するQ&A