我有一个表单,我正在使用nicEdit WYSIWYG并启用了以下按钮:
我可以提交表单并处理我的SQL数据库的更新,当其中任何一个使用时,除了无序列表之外.当文本字段使用UL时,我从服务器收到403 Forbidden错误.
表单代码如下:
<form action="actions.php?action=2" method="POST">
<p>How We Met Story</p>
<textarea name="area1" cols="50" id="area1"><?php echo html_entity_decode($row_rsHowWeMet['howWeMet']); ?></textarea>
<input name="websiteID" type="hidden" value="<?php echo $_GET['websiteID'] ?>" />
<p><input id="partyEntry" type="submit" name="Submit" value="Save Changes" /></p>
</form>
Run Code Online (Sandbox Code Playgroud)
处理表单的代码如下:
$myMessage = htmlentities($_POST['area1']);
$sql2 = "UPDATE `tools_wedWebHowWeMet` SET `howWeMet` = '" . $myMessage . "' WHERE websiteID = '" . $_POST['websiteID'] . "'";
if (!mysql_query($sql2,$con))
{
echo "failed";
die('Error: ' . mysql_error());
}
Run Code Online (Sandbox Code Playgroud)
任何想法为什么会这样?我做了一些搜索,但没有找到一个可靠的答案.StackOverflow上有另一个线程有一个非常相似的问题,但没有答案.非常感谢.
假设POST数组中的差异实际上只是它是否有标记(你应该通过实际检查POST并确保它实际上是相同的来验证这一点),我猜这与一个软件防火墙(403错误是一个提示,问题可能在服务器级别而不是PHP级别 - 尽管您可能有一个PHP文件故意发送403标头).检查您是否启用了ModSecurity或类似功能.我怀疑您可能需要重新配置服务器的防火墙,因为它们可以配置为拒绝特定标签等(具体来说,检查SecFilter
设置)