表单使用mysql_real_escape_string函数不能转义

huige728 2014-02-28 03:59:06
我在表单中输入一段带引号或是双引号的文字,居然没有转义
Array ( [question] => 你爱啊"啊 ) 


我用的是wamp套件,get_magic_quotes_gpc()返回0

//在测试的时候,我们发现有的php5会将表单自动转义,所以我们需要处理一下。
//可以通过php.ini来关闭此功能;或者通过一个函数来判断是否开启了自动转义,然后再进行过滤处理。
//当magic_quotes_gpc=On的时候,函数get_magic_quotes_gpc()就会返回1
//当magic_quotes_gpc=Off的时候,函数get_magic_quotes_gpc()就会返回0(我用的是wamp套件,默认关闭)
//mysql_real_escape_string() 函数转义 SQL 语句中使用的字符串中的特殊字符
//创建一个自动转义状态的常量
define('GPC',get_magic_quotes_gpc());
function _mysql_string($_string) {
//如果没有开启状态,那么就需要转义
if (!GPC) {
return mysql_real_escape_string($_string);
}
return $_string;
}


function _check_question($_string,$_min_num,$_max_num) {
$_string = trim($_string);
if (mb_strlen($_string,'utf-8') < $_min_num || mb_strlen($_string,'utf-8') > $_max_num) {
ShowMsg('密码提示不得小于'.$_min_num.'位或者大于'.$_max_num.'位','');
}

//返回密码提示
return _mysql_string($_string);
}
...全文
637 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
huige728 2014-03-03
  • 打赏
  • 举报
回复
在顶一次,还有人回答吗????
huige728 2014-03-01
  • 打赏
  • 举报
回复
还有人回答吗????
huige728 2014-02-28
  • 打赏
  • 举报
回复
引用 3 楼 jordan102 的回复:
这两端代码在同一文件还是不同文件? 哪个在上。 感觉你调用_mysql_string时常量还没定义,你可以这样: function _mysql_string($_string) { //如果没有开启状态,那么就需要转义 var_dump(GPC); //看是什么值 if (!GPC) { return mysql_real_escape_string($_string); } return $_string; }
输出是 int0 3段代码3个文件; 文件顺序是上面的代码段【第二段】到【第三段】在到【第一段】 这个问题我我去找了下其他的开源程序,我重新定义了下
define('MAGIC_QUOTES_GPC',function_exists('get_magic_quotes_gpc')&&get_magic_quotes_gpc());
function _mysql_string($_string) {
	//如果没有开启状态,那么就需要转义
	if (!MAGIC_QUOTES_GPC) {
		return mysql_real_escape_string($_string);
	} 
	return $_string;
}
上面这段代码就是和我以前的差不多就是修改了define,效果就出来了 但是我搞不懂,为什么要确定这个函数存不存在
function_exists('get_magic_quotes_gpc')&&get_magic_quotes_gpc()
同时还用了&&,看不懂!!!!! 最后还有一个问题就是既然转义只能是英文状态下的符号,但是中文状态下输入的就不转义了
一起混吧 2014-02-28
  • 打赏
  • 举报
回复
这两端代码在同一文件还是不同文件? 哪个在上。 感觉你调用_mysql_string时常量还没定义,你可以这样: function _mysql_string($_string) { //如果没有开启状态,那么就需要转义 var_dump(GPC); //看是什么值 if (!GPC) { return mysql_real_escape_string($_string); } return $_string; }
huige728 2014-02-28
  • 打赏
  • 举报
回复
引用 1 楼 microlab2009 的回复:
用addcslashes函数吧
用了 但是还是不转义 不知道那里错了
嘻哈大咖秀 2014-02-28
  • 打赏
  • 举报
回复
用addcslashes函数吧

20,359

社区成员

发帖
与我相关
我的任务
社区描述
“超文本预处理器”,是在服务器端执行的脚本语言,尤其适用于Web开发并可嵌入HTML中。PHP语法利用了C、Java和Perl,该语言的主要目标是允许web开发人员快速编写动态网页。
phpphpstorm 技术论坛(原bbs)
社区管理员
  • 开源资源社区
  • phpstory
  • xuzuning
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧