微信小程序php后台实现

article/2025/10/23 4:13:25

微信的登陆流程
在这里插入图片描述
首先前端发送请求到服务器:

wx.login({success: function (res) {var code = res.code;//发送给服务器的codewx.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代码:

<?phptext();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());}}

http://chatgpt.dhexx.cn/article/yCjaySNn.shtml

相关文章

最棒的PHP后台管理系统

项目介绍 一款 PHP 语言基于 ThinkPhp6.x Layui MySQL等框架精心打造的一款模块化、插件化、高性能的前后端分离架构敏捷开发框架&#xff0c;可用于快速搭建前后端分离后台管理系统&#xff0c;本着简化开发、提升开发效率的初衷&#xff0c;框架自研了一套个性化的组件&am…

PHP后台开发框架

项目介绍 一款 PHP 语言基于 ThinkPhp6.x Layui MySQL等框架精心打造的一款模块化、插件化、高性能的前后端分离架构敏捷开发框架&#xff0c;可用于快速搭建前后端分离后台管理系统&#xff0c;本着简化开发、提升开发效率的初衷&#xff0c;框架自研了一套个性化的组件&am…

管理后台-后端-PHP篇

这里选用codeigniter做为web框架&#xff0c;因为它安装方便&#xff08;独立压缩包解压即可&#xff09;、自身集成了migration,query-builder&#xff08;对数据库的封装&#xff0c;不用关心数据库选型&#xff09;&#xff0c;虽然CI官方说明PHP版本只要求5.2&#xff0c;但…

PHP后台管理系统

项目介绍 一款 PHP 语言基于 ThinkPhp6.x Layui MySQL等框架精心打造的一款模块化、插件化、高性能的前后端分离架构敏捷开发框架&#xff0c;可用于快速搭建前后端分离后台管理系统&#xff0c;本着简化开发、提升开发效率的初衷&#xff0c;框架自研了一套个性化的组件&am…

企业级PHP后台开发框架

项目介绍 一款 PHP 语言基于 ThinkPhp6.x Layui MySQL等框架精心打造的一款模块化、插件化、高性能的前后端分离架构敏捷开发框架&#xff0c;可用于快速搭建前后端分离后台管理系统&#xff0c;本着简化开发、提升开发效率的初衷&#xff0c;框架自研了一套个性化的组件&am…

【web前端开发】后台PHP

文章目录 PHP基本知识PHP基本语法1.php变量、常量2.php打印输出3.php运算符 if、switch语句array数组数组声明数组键名定义的规则数组的赋值操作php常见数组的分类1.数值数组2.关联数组3.多维数组 循环结构与数组遍历数组遍历--forbreak && continueforeach语句1.遍历一…

PHP从前端到后台整站开发实战笔记-1

前言 从慕课网上搞了一套ThinkPHP整站开发从前端到后台的视频教程,好好系统的学习一下MVC模式下的正规开发流程,做一下学习过程中的开发笔记. 1.系统概述 这套教程视频中使用了ThinkPHP框架,但是有点老了,用的还是3.2.3版本的,不过思路很重要,等全做好了可以考虑再用最新的5…

PHP之后台开发需要做什么——即时通信IM

关于“即时通信IM”&#xff0c;腾讯云的官方文档&#xff0c;是这样介绍的&#xff1a;即时通信&#xff08;Instant Messaging&#xff0c;IM&#xff09;基于QQ 底层 IM 能力开发&#xff0c;仅需植入 SDK 即可轻松集成聊天、会话、群组、资料管理能力&#xff0c;帮助您实现…

通过数据泵expdp、impdp方式备份与还原(导出与导入)Oracle数据库

作者专注于Java、架构、Linux、小程序、爬虫、自动化等技术。 工作期间含泪整理出一些资料&#xff0c;微信搜索【程序员高手之路】&#xff0c;回复 【java】【黑客】【爬虫】【小程序】【面试】等关键字免费获取资料。 目录 前言 一、备份 step1&#xff1a;使用system登…

expdp的用法

exp/imp与expdp/impdp的用法区别 1&#xff1a;把用户usera的对象导到用户userb,用法区别在于fromuserusera touseruserb ,remap_schemausera:usera 。例如 imp system/passwd fromuserusera touseruserb file/oracle/exp.dmp log/oracle/exp.log; impdp system/passwd directo…

expdp/impdp 详细参数解释

数据泵导出实用程序提供了一种用于在 Oracle 数据库之间传输 数据对象的机制。该实用程序可以使用以下命令进行调用: 示例: expdp scott/tiger DIRECTORYdmpdir DUMPFILEscott.dmp 您可以控制导出的运行方式。具体方法是: 在 expdp 命令后输入 各种参数。要指定各参数, 请使用关…

Oracle详解:exp/imp和expdp/impdp的区别

Oracle详解:exp/imp和expdp/impdp的区别 结论&#xff1a; 在10g之前&#xff0c;传统的导出和导入分别使用EXP工具和IMP工具&#xff0c;从10g开始&#xff0c;不仅保留了原有的EXP和IMP工具&#xff0c;还提供了数据泵导出导入工具EXPDP和IMPDP。 1、exp和expdp最明显的区…

使用expdp(非本地)远程导出数据

背景&#xff1a; 前段时间&#xff0c;需要从异地一个测试数据库中将测试数据(一张表)导入本地库&#xff0c;表数据量大约500万&#xff0c;字段160多个&#xff0c;开始用了exp/imp方式&#xff0c;速度奇慢&#xff0c;不能忍&#xff0c;于是转而使用expdp/impdp方式。 e…

运维 —— expdp、impdp

一、exp/imp与expdp/impdp 1&#xff09;exp和imp是客户端工具程序,它们既可以在可以客户端使用,也可以在服务端使用。 2&#xff09;expdp和impdp是服务端的工具程序,他们只能在ORACLE服务端使用, 不能在客户端使用。 3&#xff09;字符集的问题到expdp/impdp数据泵已经消除…

expdp / impdp 用法详解

一、注意事项&#xff1a; EXP和IMP是客户端工具程序&#xff0c;它们既可以在客户端使用&#xff0c;也可以在服务端使用。 EXPDP和IMPDP是服务端的工具程序&#xff0c;他们只能在ORACLE服务端使用&#xff0c;不能在客户端使用。 IMP只适用于EXP导出的文件&#xff0c;不适…

expdp/impdp 数据泵导入导出

业务场景&#xff1a; 在工作中&#xff0c;涉及到oracle数据库迁移&#xff0c;使用navicat等其他工具 容易报错&#xff0c;一系列问题很麻烦&#xff0c;今天记录一下操作流程及个人理解&#xff08;文章参考了很多文档和博客&#xff09;&#xff1b; EXPDP数据导出 请自…

rest_framework--过滤器filters--搜索

rest_framework–过滤器filters–搜索 view from rest_framework.pagination import PageNumberPagination from rest_framework import mixins from rest_framework import viewsets from rest_framework import filtersfrom .models import Goods from .serializers import G…

gateway整合filters

Unable to find GatewayFilterFactory with name AddRequestParamter 首先确定你要做的是用nacos整合gateway&#xff0c;然后使用gateway配置filters对请求进行修改。 一、首先在gateway微服务的application.yml或者bootstrap.yml文件进行filter的配置 // A code block ser…

php apply filters,WordPress学习——apply_filters()详解

前两天学习了 add_filters() 函数,详见>>> WordPress学习——add_filter()详解 ,今天趁热打铁再来学习下它的使用。一般情况下 add_filters() 有两种方式触发,一种是当程序运行到特定时候 WordPress 程序会判断用户是否对某些参数做了新的定义,如果有则优先使用用…

filters过滤器

这是通过过滤器写的一个只显示10个字的效果图。 1&#xff09;&#xff1a;什么时候用到过滤器&#xff1f; 绑定一些复杂数据类型的时候用到过滤器 2&#xff09;&#xff1a;以下两种方式定义过滤器&#xff1a; 第一种&#xff1a;Vue.filter()定义全局过滤器&#xff0…