在某些情况下,PHP 网页可能会遇到提交表单数据导致添加一个每个双引号前都有反斜杠。此问题是由称为“魔术引号”的服务器配置功能引起的。
启用魔术引号后,PHP 在向数据库或表单提交发送或从数据库或表单提交中接收某些字符时,会自动转义某些字符,包括双引号。虽然这可以通过转义恶意引号来防止 SQL 注入攻击,但它也会干扰正常的表单处理。
解决问题
要解决该问题,您可以使用stripslashes() 函数用于在将表单数据保存到数据库或在页面上显示之前删除自动添加的反斜杠。下面是一个示例:
<code class="php">if (get_magic_quotes_gpc()) { $input = stripslashes($input); }</code>
此条件语句检查是否启用了魔术引号,如果启用,则使用 stripslashes() 从 $input 变量中删除反斜杠。这将允许您正常处理表单数据,而无需任何额外的修改。
魔术引号解释
魔术引号是一个已弃用的功能,在现代 PHP 中应该被认为是不安全的发展。它们在 PHP 4 中引入,并在 PHP 7.0.0 中删除,因为它们引入了各种安全和代码兼容性问题。
通常建议禁用魔术引号,因为它允许更透明和安全的编码实践。您可以通过修改 PHP 配置文件并将 magic_quotes_gpc 设置为 Off 来禁用魔术引号。
通过了解魔术引号的功能并使用 stripslashes() 解决这个“每个引号前都有斜杠”的问题,您可以有效地处理在 PHP 中形成数据并确保其预期功能,即使启用了魔术引号也是如此。
以上是如何解决 PHP 中的'每个引号前都有斜杠”问题?的详细内容。更多信息请关注PHP中文网其他相关文章!