这种形式是什么导致错误?

时间:2012-09-04 14:25:46

标签: php html

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

  

禁止

     

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

     

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

代码:

<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)。

表单将数据从数据库导入到可编辑字段,然后单击“保存”时,应将该信息保存回数据库。单击“保存”时,浏览器会显示“禁止错误”。

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

问题不在于代码,而在于使用名为modsecurity的服务器插件。它现在被我的主机禁用并且完美运行!如果您遇到类似错误,请与您的主人联系,为您节省几天的问题!

3 个答案:

答案 0 :(得分:4)

有一些可能的原因:

  • 文件/savetodb.php不存在
  • 文件权限不允许Web服务器进程访问文件
  • 您已经以无法访问此文件的方式配置了.htaccess或虚拟主机。

答案 1 :(得分:0)

错误404表示找不到文件。

确保路径正确并检查.htaccess

中的重写规则

答案 2 :(得分:0)

很抱歉,这是modsecurity的一个问题,因为表单中有HTML,它阻止了文件的运行。

我的主人现在解决了很奇怪的问题。

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