0

同様の質問がここにありましたが、私の質問には答えませんでした: HTML フォーム「送信」時に PHP スクリプトが実行されない

index.htmlLinux ボックスのルート Web フォルダでWeb ページ ( ) をホストしています。ボタン入力が 1 つのシンプルなページです。

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <body>
    <form action="cgi-bin/foo.php" method="post">
        <input type="Submit" value="TEST">
    </form>
  </body>
</html>

foo.phpまた、実行時に単純なドキュメントを作成する単純な PHP ファイル ( ) もあります。このファイルは、ルート Web ディレクトリの cgi-bin フォルダーに保存されます。

<?php
   $my_file = 'foo.xml';
   $handle = fopen($my_file, 'w') or die('Cannot open file:  '.$my_file); 
   $data = '<foo>OK</foo>';
   fwrite($handle, $data);
   fclose($handle);

   echo "foo.xml file created";
?>

これで、Web ページが正しく機能し、コマンド プロンプトから PHP を実行できるようになり、正しく実行されるようになりました。.html ファイルと .php ファイルの両方に CHMOD 777 パーミッションが付与されています。

ただし、Web 入力ボタンの送信を使用して .php を実行しようとすると、次のエラーが発生します。

403 Forbidden 要求された URL '/index.html' は、実行可能とマークされているが CGI ファイルではないファイルに解決されます。持ち出し禁止です。

.php ファイルを .cgi ラッパーにラップする方法をグーグルで調べてきましたが、すべてが乱雑に見えます。確かに私がここで見逃している簡単なものがありますか?

このエラーを解決する方法についての提案は大歓迎です。ありがとう、

4

1 に答える 1

1

foo.php ページを index.html フォームと同じディレクトリに移動します。

フォームのターゲットを foo.php に変更します。

Web サーバーが PHP を解析するように正しく設定されていれば、「問題なく動作する」はずです。

最近では、PHP が CGI スクリプトとして実行されることは非常にまれです。

于 2013-01-17T22:02:23.210 に答える