这个函数究竟在PHP中做了什么

时间:2014-03-19 07:37:18

标签: php

private function escape($string) {
        if(get_magic_quotes_gpc()) $string = stripslashes($string);
        return mysql_real_escape_string($string);
    }

使用其中一个PHP站点,遇到上面的代码,我是php的新手,我只是想了解上面的代码是什么。

请指导

3 个答案:

答案 0 :(得分:2)

基本上该函数对可能的SQL注入攻击向量采取预防措施,从字符串中剥离'"这里:if(get_magic_quotes_gpc()) $string = stripslashes($string);如果它们存在并确保只有没有mysql代码或其他奇怪字符的字符串发送回数据库,在此处完成:return mysql_real_escape_string($string);

但是要了解更多细节,你应该看一下这些函数的文档,你正在使用什么php版本,因为有些函数已被弃用(在更新版本的php中不再使用)

答案 1 :(得分:1)

好的,“stripslashes” - >取消引用带引号的字符串。 像这样:

$ str =“你的名字是不是真的?”; echo stripslashes($ str);

//输出:你的名字是O'reilly吗?

另一方面:“get_magic_quotes_gpc” - >获取当前配置设置“magic_quotes_gpc”(在PHP版本5.3.0中已弃用) - >设置GPC(Get / Post / Cookie)操作的magic_quotes状态

最后:mysql_real_escape_string - >转义字符串中的特殊字符以用于SQL语句。(它也是PHP 5.5.0中的DEPRECATED函数)

出于调试目的,您可以在代码中使用'echo'或'var_dump'或'var_export'

答案 2 :(得分:0)

mysql_real_escape_string - 避免像','等特殊字符 get_magic_quotes_gpc - 它在php 5.3 version.it之后被弃用。检测魔法引号,如/(斜杠),有助于避免sql注入。