网站地图    收藏   

主页 > 后端 > wordpress教程 >

wordpress支持中文用户名注册的2种实现方法 - Wor

来源:自学PHP网    时间:2014-11-28 23:42 作者: 阅读:

[导读] wordpress是不支持中文名字注册的如果你要增加中文注册是需要在注册判断或登录处进行二次开发了,具体如下 之前写了一篇,代码如下:functionludou_non_strict_login($username,$raw_username,$strict...

wordpress支持中文用户名注册的2种实现方法

wordpress是不支持中文名字注册的如果你要增加中文注册是需要在注册判断或登录处进行二次开发了,具体如下.

之前写了一篇,代码如下:

  1. function ludou_non_strict_login( $username$raw_username$strict ) { 
  2.     if( !$strict ) 
  3.         return $username
  4.     return sanitize_user(stripslashes($raw_username), false); 
  5. add_filter('sanitize_user''ludou_non_strict_login', 10, 3); 

现在回过头看了一下,这篇教程对用户名的过滤太少,容易出现安全问题,今天介绍新的方法,借鉴了wp-includes/formatting.php中sanitize_user函数的写法,同样是将以下php代码复制到当前主题目录下的functions.php中,即可让WordPress支持使用中文用户名注册和登录,代码如下:

  1. function ludou_sanitize_user ($username$raw_username$strict) { 
  2.   $username = wp_strip_all_tags( $raw_username ); 
  3.   $username = remove_accents( $username ); 
  4.   // Kill octets 
  5.   $username = preg_replace( '|%([a-fA-F0-9][a-fA-F0-9])|'''$username ); 
  6.   $username = preg_replace( '/&.+?;/'''$username ); // Kill entities 
  7.   // 网上很多教程都是直接将$strict赋值false, 
  8.   // 这样会绕过字符串检查,留下隐患 
  9.   if ($strict) { 
  10.     $username = preg_replace ('|[^a-z\p{Han}0-9 _.\-@]|iu'''$username);//开源软件:phpfensi.com 
  11.   } 
  12.   $username = trim( $username ); 
  13.   // Consolidate contiguous whitespace 
  14.   $username = preg_replace( '|\s+|'' '$username ); 
  15.   return $username
  16. add_filter ('sanitize_user''ludou_sanitize_user', 10, 3); 

增加到function.php文件中之后你就可以在wordpress注册中加中文名字了.

自学PHP网专注网站建设学习,PHP程序学习,平面设计学习,以及操作系统学习

京ICP备14009008号-1@版权所有www.zixuephp.com

网站声明:本站所有视频,教程都由网友上传,站长收集和分享给大家学习使用,如由牵扯版权问题请联系站长邮箱904561283@qq.com

添加评论