为什么这么写?其实很多人都会拉
strstr()的方法就可以搞定。
今天做微信的扫描登陆,其中有一个最让我头疼的,默非就是用户名的重复了。
通过微信扫描登陆获取的openid,判断数据库是否存在,如不存在,则创建新的用户。
用户名作者是使用了作者的网名小写qxz_+用户最大的ID+1
比如微信扫描之后,系统要添加一个用户(当前用户的最大ID为23)
那么生成的用户帐户就是qxz_24的了。问题来了,如果用户自行注册的话,已经申请了qxz_24的名字,那这就会产生BUG了,虽然你也可以进行ID+1的方式,那就很不好了。
所以修改下文件,禁止名字中包含有”qxz_”这4个字段
1:修改user_passport.dwt模板,找到注册的那一块,在JS里进行判断。(当然也可以不用,毕竟这里不写入数据库)
2:修改user.php文件
找到:$username = isset($_POST[‘username’]) ? trim($_POST[‘username’]) : ”;
在下面加入:
if(strstr($username,’qxz_’)) //判断是否包含微信登陆特有的
{
echo “名字包含qxz_,禁止注册”;exit;
}
这样,qxz_的名字前缀就专门可提供给微信登陆的用户使用了。
如果有mobile端的
查找到你的注册PHP文件,如果有使用MVC的话我相信你看的懂上面的了很快就能找到了。
比如作者的,MVC里对$username有用户名/手机/邮箱的判断注册
为了保险起见,在3个判断之后,我在进行一次
if(strstr($username,’qxz_’)) //判断是否包含微信登陆特有的
{
echo “名字包含qxz_,禁止注册”;exit;
}
的判断,保证有该字段的名字/邮箱(电话肯定更不用说了,正则都过不去!)不会存在qxz_;
关于作者