好的,这是你需要做的。首先,根据评论,从其他问题:
隔离
您需要确定导致问题的原因。是服务器吗?是某处隐藏的代码吗?什么?一些程序员可能会在配置页面上包含这样的代码:
<?php if (isset($_POST))
foreach ($_POST as $key => $value) $_POST[$key] = addslashes($value);
?>
所以这里有一些检查,看看它是否是服务器。这是一种尽可能可靠的检查方式。创建一个新页面。将其完全留空并添加以下代码:
<?php print_r($_POST); ?>
<form action="" method="POST">
<input type="text" name="test" value="O'riley" />
<input type="submit" name="submit" value="submit" />
</form>
保存并在浏览器中加载。点击提交。看看斜线是否仍然添加。
如果它仍在添加它,您需要对您的服务器/配置进行故障排除。如果它是您支付的服务器,您需要告诉他们修复它或推动它。如果它是您自己的服务器,那么您将需要做一些混乱/谷歌搜索来弄清楚如何关闭魔术引号。
如果没有出现引号,那么肯定有一些代码在您的帖子变量中添加了斜杠。但是,它可能不像上面的代码那么明显。您需要在您的代码中搜索“addslashes”、“mysql_real_escape_string”,可能还有“str_replace”。如果您发现其中之一,则需要禁用它。但请注意,这可能会破坏您网站的其他假设此操作正在发生的部分。您将其存储在数据库中的另一个选择是执行类似于上面代码的功能,但改为在其上运行 stripslashes。然后您可以稍后在其上运行 mysql_real_escape_string。(更多不必要的开销。)