Ecshop禁止名字内包含某字符

为什么这么写?其实很多人都会拉

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_;

发表评论