private function escape($string) {
if(get_magic_quotes_gpc()) $string = stripslashes($string);
return mysql_real_escape_string($string);
}
使用其中一个PHP站点,遇到上面的代码,我是php的新手,我只是想了解上面的代码是什么。
请指导
答案 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注入。