1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > 微信小程序——登录并保存用户信息到数据库

微信小程序——登录并保存用户信息到数据库

时间:2023-08-21 20:50:09

相关推荐

微信小程序——登录并保存用户信息到数据库

效果图(登录前后):

登录后保存到数据库的数据:

开始代码部分

首选我们在index.wxml中添加用来显示登录后显示头像和昵称的标签,增加一个登录按钮,并绑定“wxLogin”事件:

<image src="{{avataUrl}}"></image><text>{{nick}}</text><button bindtap="wxLogin">登录</button>

index.js中增加以下代码:

Page({/*** 页面的初始数据*/data: {},wxLogin: function(e) {var that = this;wx.login({success: function(res) {var code = res.code; //发送给服务器的code wx.getUserInfo({success: function(res) {var userNick = res.userInfo.nickName; //用户昵称 var avataUrl = res.userInfo.avatarUrl; //用户头像地址 var gender = res.userInfo.gender; //用户性别console.log(avataUrl),that.setData({nick: userNick,avataUrl: avataUrl}) if (code) {wx.request({url: 'http://你的域名/wxLogin.php',//服务器的地址,现在微信小程序只支持https请求,所以调试的时候请勾选不校监安全域名data: {code: code,nick: userNick,avaurl: avataUrl,sex: gender,},header: {'content-type': 'application/json'},success: function(res) {console.log(res.data);wx.setStorageSync('nick', res.data.nick); //将获取信息写入本地缓存 wx.setStorageSync('openid', res.data.openid);wx.setStorageSync('imgUrl', res.data.imgUrl);wx.setStorageSync('sex', res.data.sex);}})} else {console.log("获取用户登录态失败!");}}})},fail: function(error) {console.log('login failed ' + error);}})}})

下面使我们的服务端,wxLogin.php,注意修改代码里的数据库地址、数据库账户和密码,以及数据库名称、表名:

<?phptext();function text() {$code = $_GET['code']; //小程序传来的code值$nick = $_GET['nick']; //小程序传来的用户昵称$imgUrl = $_GET['avaurl']; //小程序传来的用户头像地址$sex = $_GET['sex']; //小程序传来的用户性别$url = 'https://api./sns/jscode2session?appid=APPID&secret=APPSECRET&js_code=' . $code . '&grant_type=authorization_code'; //Appid为开发者appid.appSecret为开发者的appsecret,都可以从微信公众平台获取;$info = file_get_contents($url); //发送HTTPs请求并获取返回的数据,推荐使用curl$json = json_decode($info); //对json数据解码$arr = get_object_vars($json);$openid = $arr['openid'];$session_key = $arr['session_key'];$con = mysqli_connect('数据库地址', '数据库账号', '数据库密码'); //连接数据库if ($con) {if (mysqli_select_db($con, '数据库名称')) {$sql1 = "select * from 表名 where openid = '$openid'";$result = mysqli_query($con, $sql1);$result = mysqli_fetch_assoc($result);if ($result != null) { //如果数据库中存在此用户的信息,则不需要重新获取$result = json_encode($result);echo $result;} else { //没有则将数据存入数据库if ($sex == '0') {$sex = 'none';} else {$sex = '1' ? 'man' : 'women';}$sql = "insert into weixin(nick, openid, session_key, imgUrl, sex) values ('$nick','$openid','$session_key','$imgUrl','$sex')";if (mysqli_query($con, $sql)) {$arr['nick'] = $nick;$arr['imgUrl'] = $imgUrl;$arr['sex'] = $sex;$arr = json_encode($arr);echo $arr;} else {die('failed' . mysqli_error($con));}}}} else {die(mysqli_error());}}?>

下面是我们的数据库:

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。