无法从HTTP表单提交中执行PHP文件

时间:2013-01-17 21:56:37

标签: php cgi

这里有类似的问题,但没有回答我的问题:PHP script not executing upon HTML Form 'Submission'

我在linux框的根网站文件夹中托管了一个网页(index.html)。这是一个简单的页面,只有一个按钮输入:

<!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>

我还有一个简单的PHP文件(foo.php),可以在运行时创建一个简单的文档。该文件保存在我的根网站目录的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";
?>

现在,网页正常运行,我可以从命令提示符运行PHP并正确执行。 .html和.php文件都已获得CHMOD 777权限。

但是,尝试使用Web输入按钮提交运行.php会出现此错误:

  

403 Forbidden请求的网址'/index.html'解析为一个文件   标记为可执行文件,但不是CGI文件;检索它是   禁止的。

我一直在谷歌搜索如何将.php文件包装成.cgi包装器,但一切看起来都很混乱。当然,我在这里找不到容易的东西?

非常感谢有关如何解决此错误的任何建议。谢谢,

1 个答案:

答案 0 :(得分:1)

将您的foo.php页面移动到与index.html表单相同的目录中。

将表单的目标更改为foo.php。

如果您的网络服务器设置正确以解析PHP,它应该“正常工作”。

现在很难看到php像cgi脚本一样运行。