0

从以下代码中的表单链接的任何文件都会导致页面抛出此错误:

禁止的

您无权访问此服务器上的 /savetodb.php。

此外,在尝试使用 ErrorDocument 处理请求时遇到 404 Not Found 错误。

代码:

<div id="form">
<?php
$result = mysql_query("SELECT * FROM textdb WHERE id=1") 
or die(mysql_error());  
$fields = mysql_fetch_assoc($result);
?>
<form action="savetodb.php" method="post">
<p><a href="#">Text from DB One</a><br></p>
<br /><?php echo"<input name=\"one\" type=\"text\" id=\"one\" value=\"" .$fields['one']. "\"/>"; ?>
<br /><br />
<p><a href="#">Text from DB 2</a><br></p><br />
  <?php echo"<input name=\"two\" type=\"text\" id=\"two\" value=\"" .$fields['two']. "\">"; ?>
<br /><br />
<p><a href="#">Text from DB 3</a><br></p><br /><?php echo"<input name=\"three\" type=\"text\" id=\"three\" value=\"" .$fields['three']. "\">"; ?>
<br /><br />
<input name="submit" type="submit" value="Save"></form>
</div>

我是否错过了代码中可能导致此问题的某些内容?文件权限设置为 655(我的服务器的默认设置,不允许 777)。

该表单将数据库中的数据导入到可编辑字段中,然后当您单击保存时,它应该将该信息保存回数据库。当您单击保存时,浏览器会显示 Forbidden 错误。

请不要指出我应该使用 PDO 语句,我还在学习:/

问题不在于代码,而在于名为 modsecurity 的服务器插件。它现在已被我的主机禁用并且运行良好!如果您遇到类似的错误,请联系您的主机,为您节省几天的故障排除时间!

4

3 回答 3

4

这有一些可能的原因:

  • 文件 /savetodb.php 不存在
  • 文件权限不允许网络服务器进程访问该文件
  • 您已经以无法访问此文件的方式配置了 .htaccess 或虚拟主机。
于 2012-09-04T14:29:11.480 回答
0

错误 404 表示找不到文件。

确保路径正确并检查 .htaccess 中的重写规则

于 2012-09-04T14:28:16.070 回答
0

抱歉,这是 modsecurity 的问题,因为表单中有 HTML,它阻止了文件工作。

非常奇怪的问题,我的主人现在已经解决了。

我会把它留在这里,以防将来有人遇到同样的问题。谢谢你的帮助!

于 2012-09-04T15:01:15.777 回答