如何在微信小程序中使用php和mysql_微信小程序php后台实现
这里简单介绍用php后台实现获取openid并保存到数据库;
微信的登陆流程是这样的
首先前端发送请求到服务器:
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;//用户性别
if (code) {
wx.request({
url: 'http://localhost/test/getopenid.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('name', res.data.name);//将获取信息写入本地缓存
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);
}
})
这样就实现了将前端获取的code发送到服务器,code每次获取的都不一样;
服务器getopenid.php代码:
text();
function text()
{
$code = $_GET['code'];//小程序传来的code值
$nick = $_GET['nick'];//小程序传来的用户昵称
$imgUrl = $_GET['avaurl'];//小程序传来的用户头像地址
$sex = $_GET['sex'];//小程序传来的用户性别
$url = 'https://api.weixin.qq.com/sns/jscode2session?appid=yourAppid&secret=appSecret&js_code=' . $code . '&grant_type=authorization_code';
//yourAppid为开发者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('localhost', 'root', '123');//连接数据库
if ($con) {
if (mysqli_select_db($con, 'students')) {
$sql1 = "select * from weixin 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 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());
}
}
?>
如何在微信小程序中使用php和mysql_微信小程序php后台实现相关推荐
- ip地址转换数字函数 iton_c# – RabbitMQ CreateConneciton问题 – 在一个应用程序中运行,但在另一个应用程序中运行...
所以这是连接代码. var factory = new ConnectionFactory { HostName = "myserver", UserName = "te ...
- 定义分数类中和运算符重载,实现分数的输入输出,改造原程序中对运算结果显示方式,使程序读起来更自然。
/* *Copyright (c) 2016,烟台大学计算机学院 *All rights reserved. *文件名称:main.cpp *作 者:李德彪 *完成时间:2016年6月15日 * ...
- 微信小程序中如何使用数据库_如何在程序中使用数据库
微信小程序中如何使用数据库 如何在程序中使用数据库 许多.NET解决方案都是数据库驱动的,因此我们很多人常常想知道如何访问数据库. 为了帮助您理解该问题的答案,我提供了以下示例,作为如何从数据库检索数 ...
- 小程序中纯CSS实现仿京东小优惠券图标
效果图: image.png 通常情况下可以用图片做背景图实现,但是,背景图如果用png,会出现被拉伸变形的问题,如果用svg会有兼容问题,同时也有被拉伸变形的问题,仔细分析,这个图标其实是一个圆角矩 ...
- python猜数游戏在程序中预设一个_一道Python简单程序结构练习题
1.猜数游戏. 在程序中预设一个0~9之间的整数,让用户通过键盘输入所猜数字,如果大于预设的数, 显示"遗憾,太大了":如果小于预设的数,显示"遗憾,太小了": ...
- java在程序中加入音频_在任意Java程序中播放音频
音频文件有多种格式.Java程序能够播放WAV,AIFF,MIDI,AU和RMF格式的声音文件. 要在Java中播放音频文件,应该先为声音文件创建一个音频剪辑对象(audio clip object) ...
- 编译c语言程序时 程序中的注释部分将,C语言程序编译时,程序中的注释部分将 答案:不参加编译,也不会出现在目标程序中...
相关问题 在普通视图中,需打开"插入"菜单,单击"脚注"或"尾注",打开一注释内容编辑区, 才能查看和编辑注释内容: 视图 中 菜单 脚注 ...
- 程序中 设置jvm 参数_高效应用程序的7个JVM参数
程序中 设置jvm 参数 在撰写本文时(2020年3月),围绕垃圾收集和内存,您可以将600多个参数传递给JVM. 如果您包括其他方面,则JVM参数总数将很容易超过1000个.
- 微信公众号中的支付宝支付与微信支付 支付宝支付问题(微信bug)
一般,在微信公众号中的商城都是需要支持微信支付和支付宝支付的,当然,较大的公司对于鹅厂和阿里的站队就不说了,所以这里简单记录一下支付宝支付和微信支付的主要流程.说是简单介绍,这是因为确实不难,因为前端 ...
最新文章
- 智能实验室-杀马(Defendio) 4.16.0.840
- Google BigQuery——企业级大数据分析工具
- CDN 内容分发网络 简介
- leetcode 214. Shortest Palindrome | 214. 最短回文串(Java)
- 缩减oracle日志,[20180829]减少日志生成量.txt
- Kafka和其他消息队列
- redis缓存雪崩、缓存穿透和缓存击穿等总结
- Js 获取屏幕坐标值
- 如何在命令行更改IP地址
- 一大早,分享一个好消息
- Dreamweaver网页课设做家乡网站
- @DependsOn
- 用idea使用struts和hibernate来实现CRUB的操作
- 南海滩饮食法——不饿的情况下快速减肥的法宝
- 几个维度带你了解什么是聚合支付
- ​【汇总】CV 图像分类常见的 36 个模型
- android x86 驱动精灵,手机驱动精灵软件下载(5个步骤即可解决)
- flv f4v mp4 视频播放器代码
- 【Unity】模拟果冻效果(有碰撞)——JellySprites插件使用教程
- Suzy找到实习了吗Day 17 | 二叉树进行中:110. 平衡二叉树,257 二叉树的所有路径,404. 左叶子之和