php - 绕过魔法引号,或者只是确保它们关闭?

标签 php magic-quotes-gpc

是否值得更改我的代码以使其“更具可移植性”并能够处理魔术引号的恐怖,或者我是否应该通过 .htaccess 文件确保它始终处于关闭状态?

if (get_magic_quotes_gpc()) {
    $var = stripslashes($_POST['var']);
} else {
    $var = $_POST['var'];
}

对比

php_flag magic_quotes_gpc off

最佳答案

不要兼顾这两种情况。两条代码路径 = 两倍的麻烦,而且您很可能会失误而忘记在某处处理这两种情况。

我过去常常检查魔法引号是否打开或关闭,如果它们打开,则撤消它们的魔法(正如线程中的其他人所建议的那样)。这样做的问题是,您正在更改另一个程序员可能期望的已配置环境(无论多么愚蠢)。

这些天我编写代码时就好像魔术引号已关闭一样,并且在我的主要 include/bootstrap/always-runs 文件中我检查魔术引号是打开还是关闭。如果它们打开,我会抛出一个异常来解释为什么这是一件坏事,并提供有关如何关闭它们的说明。

这种方法允许您针对单一行为进行编码,鼓励使用您的代码的其他人正确配置他们的服务器(魔术引号在 PHP 6 中消失),如果有人真的需要魔术引号他们可以处理您的异常并将他们的生命掌握在自己手中。

关于php - 绕过魔法引号,或者只是确保它们关闭?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/370292/

相关文章:

php - 以数字开头命名 cookie 可以吗?

php - 为什么我在 Zend MVC 中的驼峰式操作试图调用非驼峰式方法名称?

PHP - 魔法引用 gpc 和 stripslashes 问题

php - 与名称中包含撇号的名称匹配

php - Cookie 过期时间

php - 从 CodeIgniter 中的 URL 中删除 Controller 名称

php - Mozilla Firefox 无法从 MySQL 数据库正确下载某些文件类型

php - 修复 magic_quote 受影响的数据

javascript - 如果没有 stripslashes,json_decode 将无法工作(WordPress 中的 magic_quotes)