现在的位置: 首页学习笔记>正文
PHP项目实战解决表单自动转义.
发表于6年前 学习笔记 暂无评论

继续项目的进度,

我们先把注册验证码变成我们的核心函数库.

因为别的地方也可能要用到.

GLOBAL.FUN.PHP函数中建立我们的验证码.

PHP表单转义

 

 

  1. function _alert_YZM($_star_code,$_end_code)   
  2. {   
  3.     if ($_star_code != $_end_code){   
  4.         _alert_back(验证码不正确);   
  5.     }   
  6. }   
  7. 然后在注册页面中直接调用就可以了   
  8. _alert_YZM($_POST['YZM'],$_SESSION['code']);   
  9.   
  10.   
  11. 然后再来处理一下表单的自动转义.   
  12.   
  13.        
  14. //在核心函数库写入 转义.   
  15. function _mysql_string($_string)   
  16. {   
  17.     if (!GPC)   
  18.     {   
  19.         mysql_real_escape_string($_string);   
  20.     }else    
  21.     {   
  22.         return $_string;   
  23.     }   
  24. }   
  25. 然后我们注册页面的录入数据验证都用这个来转义.   
  26. 代码如下   
  27. <?php   
  28. /**
  29. * xiangmushizhan  
  30. * ================================================  
  31. * Copy 2012-2102 Suchao.  
  32. * Web: http://www.mechao.cn  
  33. * ================================================  
  34. * Author: Suchao.  
  35. * Date: 2012-6-12  
  36. */  
  37. ?>   
  38. <?php   
  39.   
  40.   
  41. /**
  42.  * _check_username表示检测并过滤用户名  
  43.  * @access public   
  44.  * @param string $_string 没有处理过的用户名  
  45.  * @param int $_min  最小位数  
  46.  * @param int $_max 最大位数  
  47.  * @return string  过滤后的用户名   
  48.  */  
  49.   
  50. function _check_username($_string,$_min,$_max)   
  51. {   
  52.     $string=trim($_string);   
  53.     if (mb_strlen($_string,'utf-8')<$_min||mb_strlen($_string,'utf-8')>$_max)   
  54.     {   
  55.         _alert_back('用户名长度不能小于'.$_min.',大于'.$_max);   
  56.     }   
  57.        
  58.         $_char='/[<>\'\"\ ]/';   
  59.         if (preg_match($_char,$_string))   
  60.         {   
  61.             _alert_back(你的用户名含敏感字符);   
  62.         }   
  63.            
  64.            
  65.         ////限制敏感用户名   
  66.         $_mb[0]='胡xxxxx';   
  67.         $_mb[1]='温xxxxxx';   
  68.         $_mb[2]='江xxxxxx';   
  69.         //告诉用户,有哪些不能够注册   
  70.         foreach ($_mb as $value)   
  71.         {   
  72.             $_mb_string.='['.$value.']'.'\n';   
  73.         }   
  74.             //这里采用的绝对匹配   
  75.         if (in_array($_string,$_mb))   
  76.         {   
  77.             _alert_back($_mb_string.'以上的用户名不能注册');   
  78.         }   
  79.         return _mysql_string($_string);   
  80.   
  1. }   
  2.   
  3. /**
  4.  * _check_password验证密码  
  5.  * @access public  
  6.  * @param string $_first_pass  
  7.  * @param string $_end_pass  
  8.  * @param int $_shu  
  9.  * @return string $_first_pass 返回一个加密后的密码  
  10.  */  
  11.   
  12.   
  13. function _check_password($_first_pass,$_end_pass,$_shu)   
  14. {   
  15.     if (mb_strlen($_first_pass,'utf-8') < $_shu)   
  16.     {   
  17.         _alert_back('密码少于'.$_shu.'位');   
  18.     }   
  19.     if ($_first_pass != $_end_pass)   
  20.     {   
  21.        _alert_back('密码和确认密码不一样');   
  22.     }   
  23.        
  24. //使用SHA1加密     
  25.     return _mysql_string(sha1($_first_pass));   
  26. }   
  27.   
  28.   
  29.   
  30.   
  31.   
  32. /**
  33.  * _check_question 返回密码提示  
  34.  * @access public  
  35.  * @param string $_string  
  36.  * @param int $_min  
  37.  * @param int $_max  
  38.  * @return string $_string 返回密码提示  
  39.  */  
  40.   
  41.   
  42. function _check_question($_string,$_min,$_max)   
  43. {   
  44.     if (mb_strlen($_string,'utf-8')<$_min||mb_strlen($_string,'utf-8')>$_max)   
  45.     {   
  46.         _alert_back('密码提示不能小于'.$_min.'大于'.$_max);   
  47.     }   
  48.     //过滤录入的数据.   
  49.     return _mysql_string($_string);   
  50. }   
  51.   
  52.   
  53.   
  54.   
  55.   
  56. /**
  57.  *_check_answer()  
  58.  *@access public   
  59.  * @param string $_quest  
  60.  * @param string $_answer  
  61.  * @param int $_min  
  62.  * @param int $_max  
  63.  * @return $_answer  
  64.  */  
  65. function _check_answer($_quest,$_answer,$_min,$_max)   
  66. {   
  67.     if (mb_strlen($_answer,'utf-8')<$_min||mb_strlen($_answer,'utf-8')>$_max)   
  68.     {   
  69.         _alert_back('密码回答不能小于'.$_min.'大于'.$_max);   
  70.     }   
  71.     if ($_quest==$_answer)   
  72.     {   
  73.         _alert_back('问题和密码不能设置为相同的');   
  74.     }   
  75.        
  76.     //返回加密的密码回答   
  77.     return _mysql_string(sha1($_answer));   
  78. }   
  79.   
  80.   
  81. /**
  82.  * _check_email() 检查邮箱是否合法  
  83.  * @access public  
  84.  * @param string $_string 提交的邮箱地址  
  85.  * @return string $_string 验证后的邮箱  
  86.  */  
  1. function _check_email($_string){   
  2.     if (emptyempty($_string))   
  3.     {   
  4.         return null;   
  5.     }else    
  6.     if (!preg_match('/^[\w\-\.]+@[\w\-\.]+(\.\w+)+$/',$_string))   
  7.     {   
  8.         _alert_back(邮件地址错误);   
  9.     }   
  10.     return _mysql_string($_string);   
  11. }   
  12.   
  13. /**
  14.  * _check_qq ....  
  15.  * @access public  
  16.  * @param int $_qq  
  17.  * @return int $_qq  QQ号码  
  18.  */  
  19.   
  20. function _check_qq($_qq)   
  21. {   
  22.     if (emptyempty($_qq))   
  23.     {   
  24.         return null;   
  25.     }else    
  26.     if (!preg_match('/^[1-9]{1}[0-9]{4,9}$/',$_qq))   
  27.     {   
  28.         _alert_back('qq号码不正确');   
  29.     }   
  30.     return _mysql_string($_qq);   
  31. }   
  32.   
  33.   
  34. /**
  35.  * _check_url 网址验证  
  36.  * @access public  
  37.  * @param string $_url  
  38.  * @return string $_url 返回验证后的网址  
  39.  */  
  40. function _check_url($_url)   
  41. {   
  42.     if (emptyempty($_url)||$_url=='http://')   
  43.     {   
  44.         return null;   
  45.     }else    
  46.     if (!preg_match('/^https?:\/\/(\w+\.)?[\w\-\.]+(\.\w+)+$/',$_url))   
  47.     {   
  48.         _alert_back(网址输入不合法);   
  49.     }   
  50.     return _mysql_string($_url);   
  51. }   
  52.   
  53.   
  54.   
  55.   
  56.   
  57.   
  58.   
  59.   
  60.   
  61.   
  62. ?>  
×
腾讯微博