欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

php微信公众号开发之欢迎老朋友

程序员文章站 2022-11-14 21:39:21
本文实例为大家分享了php微信公众号开发之欢迎老朋友的具体代码,供大家参考,具体内容如下 介绍数据库 insert iconv 进行数据库转码函数...

本文实例为大家分享了php微信公众号开发之欢迎老朋友的具体代码,供大家参考,具体内容如下

介绍数据库

  • insert
  • iconv 进行数据库转码函数
  • fromusername 

 php微信公众号开发之欢迎老朋友

关键代码如下:

$postobj = simplexml_load_string($poststr, 'simplexmlelement', libxml_nocdata);
$fromusername = $postobj->fromusername;
$tousername = $postobj->tousername;
$keyword = trim($postobj->content);
$time = time();
$texttpl = "<xml>
      <tousername><![cdata[%s]]></tousername>
      <fromusername><![cdata[%s]]></fromusername>
      <createtime>%s</createtime>
      <msgtype><![cdata[%s]]></msgtype>
       <content><![cdata[%s]]></content>
       <funcflag>0</funcflag>
    </xml>";  

     if(!empty( $keyword ))
     {
       //用 户 名 : $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函数操作进行数据库操作
       */

       $sql="select * from `welcome`where `user`= '" . iconv("utf-8","gbk",$fromusername) . "'";
       $query=mysql_query($sql);
       $rs=mysql_fetch_array($query);
       $b= $rs['user'];
       $c=iconv("gbk","utf-8",$b);
       $msgtype = "text";
       if ($c==$fromusername)
       {
         $contentstr = "欢迎老朋友!";
       }else{
        $sql="insert into `welcome`(`id`,`user`) values (null,'{$fromusername}')";
  mysql_query($sql);
$contentstr = "欢迎新朋友!";
       }

       $resultstr = sprintf($texttpl, $fromusername, $tousername, $time, $msgtype, $contentstr);         
       echo $resultstr;
       mysql_close($db);
     }else{
         echo "input something...";
 }

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;
        $keyword = trim($postobj->content);
        $time = time();
        $texttpl = "<xml>
              <tousername><![cdata[%s]]></tousername>
              <fromusername><![cdata[%s]]></fromusername>
              <createtime>%s</createtime>
              <msgtype><![cdata[%s]]></msgtype>
              <content><![cdata[%s]]></content>
              <funcflag>0</funcflag>
              </xml>";  

        if(!empty( $keyword ))
        {
          //用 户 名 : $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函数操作进行数据库操作
           */

           $sql="select * from `welcome`where `user`= '" . iconv("utf-8","gbk",$fromusername) . "'";
           $query=mysql_query($sql);
           $rs=mysql_fetch_array($query);
           $b= $rs['user'];
           $c=iconv("gbk","utf-8",$b);
           $msgtype = "text";
           if ($c==$fromusername)
           {
             $contentstr = "欢迎老朋友!";
           }else{
            $sql="insert into `welcome`(`id`,`user`) values (null,'{$fromusername}')";
            mysql_query($sql);
            $contentstr = "欢迎新朋友!";
           }

           $resultstr = sprintf($texttpl, $fromusername, $tousername, $time, $msgtype, $contentstr);         
           echo $resultstr;
           mysql_close($db);
         }else{
            echo "input something...";
         }


    }else {
      echo "";
      exit;
    }
  }

  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;
    }
  }
}

?>

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