本文实例为大家分享了服务器端编程语言(专业超文本预处理器的缩写)微信公众号秒杀功能的具体代码,供大家参考,具体内容如下
数据库小知识点:
strtotime:将字符串转换成时间时间():时间函数,调用系统当前时间
核心代码:
$ PostObj=simple XML _ load _ string($ PostStr,' SimpleXMLElement ',LIBXML _ NocDATa);$ from username=$ PostObj-from username;$ touser name=$ PostObj-touser name;$关键字=trim($ PostObj-Content);$ time=time();$textTpl='xml ToUserName![CData[% s]]/从用户名使用用户名![CData[% s]]/来自用户名创建时间% s/创建时间MsgType![CDATA[%s]]/MsgType内容![CData[% s]]/Content func flag 0/func flag/XML ';if($关键字=='秒杀') { //用户名:美元用户/密码:美元pwd /主库域名:美元主机/从库域名: SAE_MYSQL_HOST_S //端口:美元端口/数据库名: $ db name $ db name=' app _ dq 095 ';$ host=' w . RDC。SAE。新浪。com。cn ';$ port=' 3306 $ user=' 4k 514n 103 z $ pwd='密码;/*接着调用mysql_connect()连接服务器*///连主库$db=mysql_connect($host,$user,$ pwd);if(!$db){ die('连接服务器失败: '。MySQL _ error($ db));} /*连接成功后立即调用mysql_select_db()选中需要连接的数据库*/if(!MySQL _ Select _ db($ dbname)){ die('选择数据库失败: ' .MySQL _ error($ db));} MySQL _ query(' set name utf-8 ',$ db);/*至此连接已完全建立,就可对当前数据库进行相应的操作了*//*!注意,无法再通过本次连接调用mysql_select_db来切换到其它数据库了!*//* 需要再连接其它数据库,请再使用mysql_connect mysql_select_db启动另一个连接*//** * 接下来就可以使用其它标准视频教程函数操作进行数据库操作*/$ MSgtype=' text ';$石坚=strtotime(' 2018-08-23 23:00:00 ')-time();if($shijian0) { $contentStr='对不起,秒杀还没开始,2018年8月23日23点开始;} else { $ SQL=' SELECT * FROM ' welcome '其中' user `=' .iconv('UTF-8 ',' GBK ',$fromUsername).''';$ query=MySQL _ query($ SQL);$ RS=MySQL _ fetch _ array($ query);$ b=$ RS['用户'];$c=iconv('GBK ',' UTF-8 ',$ b);if($ c==$ FromUserName){ $ ContentStr='你已经秒杀过了!} else { $ SQL=' SELECT ` num ' FROM ` shuzi ` WHERE 1 ';$ query=MySQL _ query($ SQL);$ RS=MySQL _ fetch _ array($ query);$ b=$ RS[' num '];if ($b0) { $contentStr='恭喜你秒杀成功,凭此条微信到本店10元换取礼品;$ b-;$ SQL=' UPDATE ` shuzi ` SET ` num `={ $ b } WHERE 1 ';MySQL _ query($ SQL);}else{ $contentStr='很遗憾,你没有秒杀成功,下次再来吧!} $ sqluser=' INSERT INTO '欢迎`(' id `, ' user `)VALUES(NULL,' { $ from username } ')';MySQL _ query($ sqluser);} } $resultStr=sprintf($textTpl,$fromUsername,$ toUsername,$time,$msgType,$ content str);echo $ resultStrMySQL _ close($ db);}else{ echo '输入某物.';}数据库代码如下:
- phpMyAdmin SQL转储-版本3 . 3 . 8 . 1-http://www . phpmyadmin . net-主机: w . RDC。SAE。新浪。com。cn :3307生成日期: 2018 年08 月23 日22:29 - 服务器版本: 5.6.23 - PHP版本: 5 .3 .3设置SQL _ MODE=' NO _ AUTO _ VALUE _ ON _ ZERO ';-数据库: `app_dq095` -表的结构` shuzi` -如果不存在则创建表` shuzi `(` num ' int(11)NOT NULL DEFAULT ' 0 ')ENGINE=InnoDB DEFAULT CHARSET=utf8;-转存表中的数据` shuzi` -插入` shuzi` (`num `)值(0);- - 表的结构`欢迎`-如果不存在则创建表`欢迎`(` id ' int(11)NOT NULL AUTO _ INCREMENT,` user ' varchar(255)NOT NULL,PRIMARY KEY(` id `)))ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO _ INCREMENT=6;-转存表中的数据“welcome ”- INSERT INTO“welcome”(“id”、“user ”) VALUES(5,‘OOd-ow-c8 zigaihs cjn 54 aw pu2g’);
index.php代码如下:
?php/** *微信PHP测试*///定义你的tokendefine('TOKEN ',' weixin ');$微信bj=新微信callbackapitet();$微信对象响应消息();班级微信callbackapist { public function valid(){ $ echoStr=$ _ GET[' echoStr '];//有效签名,选项if($ this-CheckSignature()){ echo $ echoStr;退出;} }公共函数responseMsg(){//获取邮政数据,可能是由于环境不同$ PostStr=$ GLOBALS[' HTTP _ RAW _ POST _ DATA '];//提取帖子数据if(!empty($ PostStr)){ $ PostObj=simple XML _ load _ string($ PostStr,' SimpleXMLElement ',LIBXML _ NocDATa);$ from username=$ PostObj-from username;$ touser name=$ PostObj-touser name;$关键字=trim($ PostObj-Content);$ time=time();$textTpl='xml ToUserName![CData[% s]]/从用户名使用用户名![CData[% s]]/来自用户名创建时间% s/创建时间MsgType![CDATA[%s]]/MsgType内容![CData[% s]]/Content func flag 0/func flag/XML ';if($关键字=='秒杀') { //用户名:美元用户/密码:美元pwd /主库域名:美元主机/从库域名: SAE_MYSQL_HOST_S //端口:美元端口/数据库名: $ db name $ db name=' app _ dq 095 ';$ host=' w . RDC。SAE。新浪。com。cn ';$ port=' 3306 $ user=' 4k 514n 103 z $ pwd=' 2402314 i2j 1i 5 im1x y2xizj 5y 332 w2x 41 k2z 203 ';/*接着调用mysql_connect()连接服务器*///连主库$db=mysql_connect($host,$user,$ pwd);if(!$db){ die('连接服务器失败: '。MySQL _ error($ db));} /*连接成功后立即调用mysql_select_db()选中需要连接的数据库*/if(!MySQL _ Select _ db($ dbname)){ die('选择数据库失败: ' .MySQL _ error($ db));} MySQL _ query(' set name utf-8 ',$ db);/*至此连接已完全建立,就可对当前数据库进行相应的操作了*//*!注意,无法再通过本次连接调用mysql_select_db来切换到其它数据库了!*//* 需要再连接其它数据库,请再使用mysql_connect mysql_select_db启动另一个连接*//** * 接下来就可以使用其它标准视频教程函数操作进行数据库操作*/$ MSgtype=' text ';$石坚=strtotime(' 2018-08-23 23:00:00 ')-time();if($shijian0) { $contentStr='对不起,秒杀还没开始,2018年8月23日23点开始;} else { $ SQL=' SELECT * FROM ' welcome '其中' user `=' .iconv('UTF-8 ',' GBK ',$fromUsername). ''';$ query=MySQL _ query($ SQL);$ RS=MySQL _ fetch _ array($ query);$ b=$ RS['用户'];$c=iconv('GBK ',' UTF-8 ',$ b);if($ c==$ FromUserName){ $ ContentStr='你已经秒杀过了!';} else { $ SQL=' SELECT ` num ' FROM ` shuzi ` WHERE 1 ';$ query=MySQL _ query($ SQL);$ RS=MySQL _ fetch _ array($ query);$ b=$ RS[' num '];if ($b0) { $contentStr='恭喜你秒杀成功,凭此条微信到本店10元换取礼品;$ b-;$ SQL=' UPDATE ` shuzi ` SET ` num `={ $ b } WHERE 1 ';MySQL _ query($ SQL);}else{ $contentStr='很遗憾,你没有秒杀成功,下次再来吧!';} $ sqluser=' INSERT INTO '欢迎`(' id `, ' user `)VALUES(NULL,' { $ from username } ')';MySQL _ query($ sqluser);} } $resultStr=sprintf($textTpl,$fromUsername,$ toUsername,$time,$msgType,$ content str);echo $ resultStrMySQL _ close($ db);}else{ echo '输入某物.} } else { echo退出;} }私有函数check signature(){ $ signature=$ _ GET[' signature '];$时间戳=$_GET['时间戳'];$ nonce=$ _ GET[' nonce '];$ TOKEN=TOKEN $ TMParr=array($ TOKEN,$timestamp,$ nonce);sort($ TMParr);$tmpStr=内爆($ TMParr);$ TMPstr=sha1($ TMPstr);if($ TMPstr==$ signature){ 0返回true}否则{返回false} }?以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。