php微信公众号开发之简答题


Posted in PHP onOctober 20, 2018

本文实例为大家分享了php微信公众号开发简答题的具体代码,供大家参考,具体内容如下

简答题

  • array("第5页 第1个字" => "王","第8页 第1个字" => "李","第30页 第1个字" => "周",)
  • array_rand($array,1)
  • 数据库建立二级菜单

php微信公众号开发之简答题

php微信公众号开发之简答题

核心代码如下:

public function responseMsg()
  {
    //get post data, May be due to the different environments
    $postStr = $GLOBALS["HTTP_RAW_POST_DATA"];

    //extract post data
    if (!empty($postStr)){

        $postObj = simplexml_load_string($postStr, 'SimpleXMLElement', LIBXML_NOCDATA);
        $fromUsername = $postObj->FromUserName;
        $toUsername = $postObj->ToUserName;
        $type = $postObj->MsgType;
        $customevent = $postObj->Event;
        $latitude = $postObj->Location_X;
        $longitude = $postObj->Location_Y;
        $keyword = trim($postObj->Content);
        $time = time();
        $textTpl = "<xml>
              <ToUserName><![CDATA[%s]]></ToUserName>
              <FromUserName><![CDATA[%s]]></FromUserName>
              <CreateTime>%s</CreateTime>
              <MsgType><![CDATA[%s]]></MsgType>
              <Content>%s</Content>
              <FuncFlag>0</FuncFlag>
              </xml>"; 
        include("coon.php");      

        if($keyword=="8")
        {
          $array=array("第5页第1个字"=>"王","第8页第1个字"=>"李","第30页第1个字"=>"周");
          $a=array_rand($array,1);
          $b=$array[$a];
          $contentStr=$a."是什么?";
          $sql="INSERT INTO `menu2` (`id` ,`user` ,`sec`,`answer`)VALUES (NULL , '{$fromUsername}', '8','{$b}')";
          mysql_query($sql);
        }  
        else
        {
          $sql="SELECT * FROM `menu2` where `user`= '{$fromUsername}'";
          $query=mysql_query($sql);
          $rm=mysql_fetch_array($query);
          $sec=$rm['sec'];
          $answer=$rm['answer'];   
          if($sec=="8")
          {
            if($keyword==$answer)
            {
              $contentStr="你的答案是正确的,视频代码下载地址为....";
            }
            else
            {
              $contentStr="你的答案不正确,请购买《微信公众平台搭建与开发揭秘》";
            }
          }
          else 
          {
            $contentStr="请先输入8";
          }
        }
        $msgType="text";
        $resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time, $msgType, $contentStr);
        echo $resultStr;
    }
  }

coon.php:连接数据库代码如下:

<?php


    //用 户 名 : $user
    //密码 : $pwd
    //主库域名 : $host
    //从库域名 : SAE_MYSQL_HOST_S
    //端口 : $port
    //数据库名 : $dbname

    $dbname = "app_dq095";
    $host = "w.rdc.sae.sina.com.cn";
    $port = "3306";
    $user = "4k514n103z";
    $pwd = "2402314li2j1i5im1xy2xizj5y332w2x41k2z203";

    /*接着调用mysql_connect()连接服务器*/
    // 连主库
    $db = mysql_connect($host,$user,$pwd);

    if(!$db){
      die("Connect Server Failed: " . mysql_error($db));
    }

    /*连接成功后立即调用mysql_select_db()选中需要连接的数据库*/
    if (!mysql_select_db($dbname)) {
      die("Select Database Failed: " . mysql_error($db));
    }
    mysql_query("set names utf-8",$db); 

    /*至此连接已完全建立,就可对当前数据库进行相应的操作了*/
    /*!!!注意,无法再通过本次连接调用mysql_select_db来切换到其它数据库了!!!*/
    /* 需要再连接其它数据库,请再使用mysql_connect+mysql_select_db启动另一个连接*/

    /**
       * 接下来就可以使用其它标准php mysql函数操作进行数据库操作
    */

index.php整体代码如下:

<?php
/**
 * wechat php test
 */



//define your token
define("TOKEN", "weixin");
$wechatObj = new wechatCallbackapiTest();
$wechatObj->responseMsg();

class wechatCallbackapiTest
{
  public function valid()
  {
    $echoStr = $_GET["echostr"];

    //valid signature , option
    if($this->checkSignature()){
      echo $echoStr;
      exit;
    }
  }

  public function responseMsg()
  {
    //get post data, May be due to the different environments
    $postStr = $GLOBALS["HTTP_RAW_POST_DATA"];

    //extract post data
    if (!empty($postStr)){

        $postObj = simplexml_load_string($postStr, 'SimpleXMLElement', LIBXML_NOCDATA);
        $fromUsername = $postObj->FromUserName;
        $toUsername = $postObj->ToUserName;
        $type = $postObj->MsgType;
        $customevent = $postObj->Event;
        $latitude = $postObj->Location_X;
        $longitude = $postObj->Location_Y;
        $keyword = trim($postObj->Content);
        $time = time();
        $textTpl = "<xml>
              <ToUserName><![CDATA[%s]]></ToUserName>
              <FromUserName><![CDATA[%s]]></FromUserName>
              <CreateTime>%s</CreateTime>
              <MsgType><![CDATA[%s]]></MsgType>
              <Content>%s</Content>
              <FuncFlag>0</FuncFlag>
              </xml>"; 
        include("coon.php");      

        if($keyword=="8")
        {
          $array=array("第5页第1个字"=>"王","第8页第1个字"=>"李","第30页第1个字"=>"周");
          $a=array_rand($array,1);
          $b=$array[$a];
          $contentStr=$a."是什么?";
          $sql="INSERT INTO `menu2` (`id` ,`user` ,`sec`,`answer`)VALUES (NULL , '{$fromUsername}', '8','{$b}')";
          mysql_query($sql);
        }  
        else
        {
          $sql="SELECT * FROM `menu2` where `user`= '{$fromUsername}'";
          $query=mysql_query($sql);
          $rm=mysql_fetch_array($query);
          $sec=$rm['sec'];
          $answer=$rm['answer'];   
          if($sec=="8")
          {
            if($keyword==$answer)
            {
              $contentStr="你的答案是正确的,视频代码下载地址为....";
            }
            else
            {
              $contentStr="你的答案不正确,请购买《微信公众平台搭建与开发揭秘》";
            }
          }
          else 
          {
            $contentStr="请先输入8";
          }
        }
        $msgType="text";
        $resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time, $msgType, $contentStr);
        echo $resultStr;
    }
  }

  private function checkSignature()
  {
    $signature = $_GET["signature"];
    $timestamp = $_GET["timestamp"];
    $nonce = $_GET["nonce"];  

    $token = TOKEN;
    $tmpArr = array($token, $timestamp, $nonce);
    sort($tmpArr);
    $tmpStr = implode( $tmpArr );
    $tmpStr = sha1( $tmpStr );

    if( $tmpStr == $signature ){
      return true;
    }else{
      return false;
    }
  }
}

?>

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

PHP 相关文章推荐
phpmyadmin的#1251问题
Nov 25 PHP
php防注
Jan 15 PHP
php简单静态页生成过程
Mar 27 PHP
PHP学习笔记之三 数据库基本操作
Jan 17 PHP
PHP substr 截取字符串出现乱码问题解决方法[utf8与gb2312]
Dec 16 PHP
php中数组首字符过滤功能代码
Jul 31 PHP
php正则表达式使用的详细介绍
Apr 27 PHP
PHP清除数组中所有字符串两端空格的方法
Oct 20 PHP
php自动获取关键字的方法
Jan 06 PHP
非常全面的php日期时间运算汇总
Nov 04 PHP
PHP生成加减算法方式的验证码实例
Mar 12 PHP
thinkPHP3.2使用RBAC实现权限管理的实现
Aug 27 PHP
php微信公众号开发之快递查询
Oct 20 #PHP
php微信公众号开发之翻页查询
Oct 20 #PHP
php微信公众号开发之校园图书馆
Oct 20 #PHP
php微信公众号开发之二级菜单
Oct 20 #PHP
php微信公众号开发之音乐信息
Oct 20 #PHP
php微信公众号开发之欢迎老朋友
Oct 20 #PHP
php微信公众号开发之秒杀
Oct 20 #PHP
You might like
Terran历史背景
2020/03/14 星际争霸
手冲咖啡应该是现代精品咖啡店的必备选项吗?
2021/03/03 冲泡冲煮
PHP Ajax实现页面无刷新发表评论
2007/01/02 PHP
UCenter 批量添加用户的php代码
2012/07/17 PHP
CentOS系统中PHP安装扩展的方式汇总
2017/04/09 PHP
PHP chop()函数讲解
2019/02/11 PHP
PHP使用 Imagick 扩展实现图片合成,圆角处理功能示例
2019/09/09 PHP
PHP+Mysql分布式事务与解决方案深入理解
2021/02/27 PHP
jquery动画2.元素坐标动画效果(创建一个图片走廊)
2012/08/24 Javascript
JS中setTimeout()的用法详解
2013/04/14 Javascript
简单几行JS Code实现IE邮件转发新浪微博
2013/07/03 Javascript
用innerhtml提高页面打开速度的方法
2013/08/02 Javascript
2种jQuery 实现刮刮卡效果
2015/02/01 Javascript
javascript编程异常处理实例小结
2015/11/30 Javascript
jQuery打字效果实现方法(附demo源码下载)
2015/12/18 Javascript
玩转NODE.JS(四)-搭建简单的聊天室的代码
2016/11/11 Javascript
原生javascript实现图片放大镜效果
2017/01/18 Javascript
Nodejs 复制文件/文件夹的方法
2017/08/24 NodeJs
详解使用React进行组件库开发
2018/02/06 Javascript
关于vue的语法规则检测报错问题的解决
2018/05/21 Javascript
js技巧之十几行的代码实现vue.watch代码
2018/06/09 Javascript
vue+webpack中配置ESLint
2018/11/07 Javascript
ES6 Object方法扩展的应用实例分析
2019/06/25 Javascript
VUE页面中通过双击实现复制表格中内容的示例代码
2020/06/11 Javascript
Python linecache.getline()读取文件中特定一行的脚本
2008/09/06 Python
python的常见命令注入威胁
2013/02/18 Python
Python KMeans聚类问题分析
2018/02/23 Python
在python中使用with打开多个文件的方法
2019/01/07 Python
Python用Try语句捕获异常的实例方法
2019/06/26 Python
详解Python高阶函数
2020/08/15 Python
Python用access判断文件是否被占用的实例方法
2020/12/17 Python
详解CSS3媒体查询响应式布局bootstrap 框架原理实战(推荐)
2020/11/16 HTML / CSS
怎样写留学自荐信
2013/11/11 职场文书
安全横幅标语
2014/06/09 职场文书
营销计划书
2015/01/17 职场文书
导游词之五台山
2019/10/11 职场文书