找回密码
 立即注册

QQ登录

只需一步,快速开始

微信公众号开发问答

关注:290

所属分类: 微信开发 微信公众号开发问答

1、清楚的描述问题,必要时请配图、代码等!
2、当得到最佳答案时,请务必手动确认最佳答案,增加信用度,以便下次问答时,获得更快速更好的回答!
3、请及时查看问题回复

4、本版为技术问答板块,禁止无意义的灌水回复

[已解决]微信网页授权获取用户基本信息存入数据库_昵称带表情

[复制链接]
查看: 15945|回复: 4
最佳答案
0 

1

主题

3

帖子

33

积分

新人求带

积分
33
 楼主| 发表于 2015-9-17 18:58:04 | 显示全部楼层 |阅读模式
/*
*判断玩家是否存在,存在返回true,负责返回false
*/
public static function checkPlayer($openid)
{
    $criteria = new CDbCriteria;
    $criteria->params = array('penid' => $openid);
    $criteria->condition = 'openid =penid';
    $resultCheckPlayer = self::model()->count($criteria);
    if ($resultCheckPlayer == 0) {
        return true;
    } else {
        return false;
    }
}

/*
*添加游戏玩家
*1.如果数据库中没有玩家信息,添加一条
*2.如果数据库中存在玩家信息,修改玩家头像地址和昵称(防止用户有修改过头像和昵称)
*/
public static function addPlayer($openid, $headurl, $nickname)
{
    $model = new XiangyuModel;
    //过滤昵称中有可能出现的表情符号
    $nicknameTmp = json_encode($nickname);
    $nicknameTmp = preg_replace("#(\\\ue[0-9a-f]{3})#ie","addslashes('\\1')",$nicknameTmp);    $nicknameNoEmoji = json_decode($nicknameTmp);
    if ($model::checkPlayer($openid)) {
        $model->openid = $openid;
        $model->headurl = $headurl;
        $model->nickname = $nicknameNoEmoji;
        $model->gametime = date('Y-m-d H:i:s', time());
        $resultAddPlayer = $model->save();
        return $resultAddPlayer;
    } else {
        $resultUpdateHeadurlAndNickname = self::model()->updateAll(array('headurl' => $headurl, 'nickname' => $nicknameNoEmoji), 'openid=penid', array('penid' => $openid));
        return false;
    }
}
//我用的框架是Yii1,现在的情况是,如果用户的昵称带有表情,存入数据库的时候是转化为unicode的类似于"\ue123"之类的字符串,可是昵称中原有的字符没了。我希望实现:昵称是->abc表情ddd,存入数据库是->abcddd。数据库字符集是utf8mb4

回复

使用道具 举报

最佳答案
0 

1

主题

3

帖子

33

积分

新人求带

积分
33
 楼主| 发表于 2015-9-17 18:59:37 | 显示全部楼层
第一次发,有啥不对的地方还望大家指出。
回复 支持 反对

使用道具 举报

最佳答案
91 

57

主题

231

帖子

2172

积分

认证开发者

Rank: 3Rank: 3

积分
2172
QQ
发表于 2015-9-18 11:00:47 | 显示全部楼层    本楼为最佳答案   
是不是昵称里有emoji表情,你可以尝试这么处理
http://www.weixin.com/thread-816-1-1.html
回复 支持 反对

使用道具 举报

最佳答案
0 

3

主题

11

帖子

111

积分

新人求带

积分
111
发表于 2015-9-22 09:26:56 | 显示全部楼层
楼主,你微信授权登录是怎么做的?
我也是用yii1  求微信登录DEMO,谢谢!!
回复 支持 反对

使用道具 举报

最佳答案
0 

1

主题

762

帖子

7495

积分

S1

1111

积分
7495
QQ
发表于 2019-4-11 10:53:45 | 显示全部楼层
阿斯顿发顺丰
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



www.henkuai.com—微信开发者的分享交流平台,专注微信开发生态。

天津市滨海新区
中新生态城中成大道生态建设公寓9号楼3层301

微信公众号

广告推广
QQ:805874290

市场合作
zhongcong@henkuai.com