微信公众号php提交表单,PHP教程:使用YII2框架实现微信公众号中表单提交功能...

《PHP教程:使用YII2框架实现微信公众号中表单提交功能》要点:

本文介绍了PHP教程:使用YII2框架实现微信公众号中表单提交功能,希望对您有用。如果有疑问,可以联系我们。

相关主题:YII框架

PHP教程刚接触微信,要做一个在手机上的表单提交功能.

PHP教程需求有这些:

只能在数据库中存在的手机号看到表单.

表单可以重复提交.

第一次进入表单需要验证

分享出去的页面,别人进入后也需要验证.

PHP教程因为每个手机在同一个公众号当中的openid是唯一性的.所以在手机查看这个表单页面的时候,就将这个openid存到数据库中,方便下次提交可以验证.

PHP教程下面是我的代码.使用的是YII2框架.

PHP教程Controller

PHP教程

//获得回调函数

public function actionCallback($code,$state){

$model = new tp_tstz_proposal();

$model1= new tp_tstz_staff();

// 微信开放平台网站应用的appid和秘钥secret

$appid = '';

$secret = '';

$curl = new curl\Curl();

//获取access_token

$wxresponse = $curl->get('https://api.weixin.qq.com/sns/oauth2/access_token?appid=' . $appid

. '&secret=' . $secret . '&code=' . $code . '&grant_type=authorization_code');

$wxresult = json_decode($wxresponse);

if(isset($wxresult->errcode) && $wxresult->errcode > 0){

//分享出去,重新认证

return $this->render('login');

// 向微信请求授权时出错,打印错误码

// echo json_encode($wxresult);

// exit;

}

$openid=$wxresult->openid;

$result=$model1::find()->where(['openid'=>$openid])->one();

//如果OPENID存在就去表单

if(count($result)>0){

$key=123456;

return $this->render('view',['model'=>$model,'key'=>$key]);

}else{

return $this->render('tel',['model'=>$model1,'openid'=> $openid]);

}

}`

PHP教程view层

PHP教程很简单的重定向页面

PHP教程

header('Location:https://open.weixin.qq.com/connect/oauth2/authorize?appid=wx8ba95fc51672e844&redirect_uri=http%3a%2f%2fjifen.wendu.cn%2fts%2fweb%2findex.php%3fr%3dproposal%2fcallback&response_type=code&scope=snsapi_base&state=123asd#wechat_redirect');

PHP教程返回的路径就是进入controller的路径.

PHP教程在表单页面,我先做了一个简单的认证

PHP教程

if(!isset($key)){

header('Location:http://jifen.wendu.cn/ts/web/index.php?r=say/login');

}

PHP教程判断是否是从分享的页面来的,如果是从分享的页面来就要重新验证,判断是否在数据库中有此手机的openid.没有就进行手机号码的验证.

PHP教程大概就是这样了,我第一个简单的微信公众号项目.

PHP教程总结

PHP教程以上所述是小编给大家介绍的使用YII2框架实现微信公众号中表单提交功能,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的.在此也非常感谢大家对脚本之家网站的支持!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/506531.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

php 命名空间实现的原理,php命名空间实现的理解

[前言]之前测试命名空间,文件头部明明定义了namespace,并且类文件的存放位置与相对路径也一致,但use之后仍提示“找不到类”,为什么?[原理分析]1.根据use的值确定类文件的物理存储位置,然后通过require_one…

linux配置nginx命令行,Linux - 加上sudo后,nginx找不到命令

安装步骤切换至rootsu安装依赖库sudo apt-get install build-essential && sudo apt-get install libtoolsudo apt-get install libpcre3 libpcre3-devsudo apt-get install zlib1g-devsudo apt-get install openssl下载源码包并且解压wget http://nginx.org/download/…

linux编译c 优化,Linux编译选项

Linux平台都通过CC调用它们的C编译程序.除标准和CC以外,LINUX和FREEBSD还支持gcc.基本的编译命令选项有以下几种:1. -c (compile)编译产生对象文件(*.obj)/目标文件,而不链接成可执行文件,当编译几个独立的模块,而待以后由链接程序把它们链接在一起时,就可以使用…

linux无filelength函数,Linux Shell 自定义函数(定义、返回值、变量作用域)介绍

定义Shell函数(define function) 语法:[ function ] funname [()]{action;[return int;]}说明:可以带function fun() 定义,也可以直接fun() 定义,不带任何参数。参数返回,可以显示加:return 返回,如果不加&…

编译linux内核成vmlinuz,内核编译之vmlinuz vmlinux system.map initrd

一、vmlinuzvmlinuz是可引导的、压缩的内核。“vm”代表“Virtual Memory”。Linux 支持虚拟内存,不像老的操作系统比如DOS有640KB内存的限制。Linux能够使用硬盘空间作为虚拟内存,因此得名“vm”。vmlinuz是可执行 的Linux内核,它位于/boot/…

linux ssh登录历史,Linux中的SSH登录

在Linux系统中需要使用SSH远程登录到另一个Linux系统,可以使用SSH命令加用户和IP地址的方法。ssh命令用于远程登录上的Linux主机。常用格式:ssh [-l login_name] [ –p port] [userhostname]例如不指定用户:ssh 192.168.0.100指定用户&#x…

linux监控电脑配置,Zabbix基本配置及监控主机

监控主机一版需要在被监控的主机上安装Zabbix Agent监控主机安装zabbix-agent首先需要在被监控的主机上安装agent,可以下载预编译好的RPM进行安装,下载地址:http://www.zabbix.com/download也可以源码安装,类似server的安装&#…

linux内网安装git,一键安装GitLab7在RHEL6.4上

1 关于gitlab7无论如何gitlab是个好东西,但是极难安装和配置。bitnami(https://bitnami.com/)的一键安装包虽然可以解决大问题,但是仍有很多人无法配置gitlabnginx和email发送等等问题。今天特意完整地再梳理一次。对各位读者的问题不再逐一…

linux显示点阵字体,Fedora 17中文字体显示点阵状的解决方法

在Fedora 17中文字体的显示变成点阵状了,为什么在Fedora 16下中文字体是文泉驿正黑。到Fedora 17之后,中文字体由文泉驿正黑(WenQuanYi Zen Hei)变为WenQuanYi Zen Hei Sharp。这个新字体的特殊之处就是在12磅及以下的中文字体,将显示成点阵字…

opencomm在c语言中的作用,使用OpenMPI从Fortran调用C语言

我有一个编译时问题,我已经减少到以下测试用例.我希望从fortran调用一个C例程,让C例程知道MPI.请考虑以下示例代码,Fortran主要:! -- main.f90program mainimplicit noneexternal return_threeinteger return_threewrite(*,*) return_three()end program mainC子程序…

c语言打印空心矩形图案的程序,C语言之输出空心棱形图案

#include#includevoid main(){int n,j,i; /*i为行数,j为每行中的项数*/printf("输入图案上三角的高度n:");scanf("%d",&n);;i < n;i) /*打印上三角&#xff0c;(包括中间行)*/{;j < n - i;j){-i || j n - - i * i )printf(" *");el…

数据结构c语言版9 答案,2019考研数据结构C语言版详解答案:栈和队列(9)

《数据结构(C语言版)》考试内容两大类&#xff1a;概念&#xff0c;算法。自从计算机专业课统考以后&#xff0c;专业课考试题型分为2类&#xff0c;一类选择题&#xff0c;一类综合应用题。要想把数据结构这门专业课复习好&#xff0c;除了做练习题&#xff0c;还要掌握2019考…

中英翻译机c语言实验报告引言,课程设计--C语言关键字中英翻译机.doc

课程设计--C语言关键字中英翻译机.doc课 程 设 计 报 告学院、系 吉林大学珠海学院计算机科学与技术系专业名称 计算机科学与技术课程设计科目 C 语言程序课程设计所在班级 4 班学生学号 04110407学生姓名 曾伟雄指导教师 李昱完成时间 2012 年 3 月-5 月C 语言关键字中英翻译机…

两个序列的中位数c语言,小白在线求教 用归并排序实现查找两个有序序列的中位数...

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼两个有序序列的中位数 (20分)已知有两个等长的非降序序列S1, S2, 设计函数求S1与S2并集的中位数。有序序列A0,A1,⋯,AN−1的中位数指A(N−1)/2的值,即第⌊(N1)/2⌋个数(A0为第1个数)。输入格式:输入分三行。第一行给出序列的公共长…

c语言优化冒泡法,C语言:冒泡法排序一组数,如何优化?

#define _CRT_SECURE_NO_WARNINGS 1#include#includeint main(){int arr[] { 5, 6, 7, 8, 9 ,1, 2, 3, 4};int i 0;int j 0;int flag;int size sizeof(arr) / sizeof(arr[0]);for (i 0; i < size- 1 ; i){flag 1;//设置标志位&#xff0c;优化冒泡for (j 0; j < s…

android-短信验证功能,Android实现获取短信验证码的功能以及自定义GUI短信验证详解...

《Android实现获取短信验证码的功能以及自定义GUI短信验证详解》由会员分享&#xff0c;可在线阅读&#xff0c;更多相关《Android实现获取短信验证码的功能以及自定义GUI短信验证详解(8页珍藏版)》请在人人文库网上搜索。1、Android实现获取短信验证码的功能以 及自定义GUI短信…

android 分享到豆瓣,Android项目总结之社会化分享

随着现在社交网络的日益繁多&#xff0c;众多的社交客户端已占据了人们的大量时间&#xff0c;所以在我们的应用中具有一键分享的功能对提高我们产品的知名度有很大的帮助。新浪微博、腾讯微博、腾讯QQ、微信、QQ空间、豆瓣等众多知名社交站点&#xff0c;都是我们可以分享的去…

android实现自动横竖屏切换,android 中实现横竖屏切换【原创】

我们在使用android手机的时候&#xff0c;发现一些应用有横竖屏切换的功能&#xff0c;一般实现有以下几种方法&#xff1a;一、设置1.通过XML设置横竖屏切换在项目的 AndroidManifest.xml中找到你所指定的activity中加上android:screenOrientation属性&#xff0c;它有以下几个…

超级管理器Android,超级文件管理器app

详情超级文件管理器app&#xff0c;一款帮助你管理手机内存的软件&#xff0c;还可以重命名&#xff0c;移动&#xff0c;删除文件&#xff0c;在Android平台上完美运行&#xff0c;并能够与其他OI系列软件结合使用! 能快速地查找到目标文件&#xff0c;十分方便用户管理自己手…

android miui ios,从iOS到Android——小米11及小米生态实际使用体验

从iOS到Android——小米11及小米生态实际使用体验2021-02-22 15:29:5693点赞155收藏131评论创作立场声明&#xff1a;文中的设备均为自购&#xff0c;无任何特定立场。2021年2月10日&#xff0c;我的iPhoneX手机突然黑屏&#xff0c;拿到Apple Store检测&#xff0c;经诊断是屏…