夺命雷公狗---微信开发52----网页授权(oauth2.0)获取用户基本信息接口(2)

我们在上一节课已经发送code给第三方了,那么这就要获取code去换取到用户的openid。

第一步:编写create_baseurl.php(上一节课程已经写完了)

 

第二步:编写vote1.php(上一节课已经谢了一大部分,现在我们来完成他)

 

<?php
    require_once "common.php";
    //获取code
    $code = $_GET['code'];
    //公众号的appid
    $appid = "wxed89d8f74fa6fc51";
    //公众号的appsecret
    $appsecret = 'd4624c36b6795d1d99dcf0547af5443d';
    $url = "https://api.weixin.qq.com/sns/oauth2/access_token?appid={$appid}&secret={$appsecret}&code={$code}&grant_type=authorization_code";
    
    //发出请求
    $res = http_request($url,null);
    //json解码
    $res = json_decode($res);
    //获取openid
    $openid = $res -> openid;
    
    
?>
<!doctype html> 
<html> 
    <head> 
        <meta charset="utf-8"> 
        <title>你最喜欢那个类型的女人</title> 
        <meta name="viewport" content="width=device-width,height=device-height,inital-scale=1.0,maximum-scale=1.0,user-scalable=no;"> 
        <meta name="apple-mobile-web-app-capable" content="yes"> 
        <meta name="apple-mobile-web-app-status-bar-style" content="black"> 
        <meta name="format-detection" content="telephone=no"> 
        <link href="./jquery.mobile-1.0.min.css" rel="stylesheet" type="text/css"> 
        <script src="./jquery-1.6.4.min.js" type="text/javascript"></script> 
        <script src="./jquery.mobile-1.0.min.js" type="text/javascript"></script> 
    </head> 
    <body> 
        <div data-role="page" id="page3"> 
            <div data-role="header"> 
                <h1>你最喜欢那个类型的女人</h1> 
            </div> 
            <div data-role="content"> 
                <form action="vote2.php" method="post" data-ajax="false" > 
                    <div data-role="fieldcontain"> 
                        <fieldset data-role="controlgroup"> 
                            <legend>你最喜欢那个类型的女人</legend> 
                                <input type="radio" name="radio1" id="radio1_0" value="温柔" /> 
                                <label for="radio1_0">温柔</label> 
                                <input type="radio" name="radio1" id="radio1_1" value="开朗" /> 
                                <label for="radio1_1">开朗</label>
                                <input type="radio" name="radio1" id="radio1_2" value="拨辣" /> 
                                <label for="radio1_2">拨辣</label> 
                                <input type="radio" name="radio1" id="radio1_3" value="文静" /> 
                                <label for="radio1_3">文静</label> 
                        </fieldset> 
                    </div>
                    <!--增加一个隐藏域,表示是那个用户提交的-->
                    <input type="hidden" name="openid" value="<?php echo $openid; ?>">
                <div class="ui-block-a"> 
                    <button type="submit" data-role="button" >点击提交</button> 
                </div> 
            </div> 
        </div> 
            </form> 
    </body> 
</html> 

 

第三步:编写vote2.php,主要用来处理用户提交的选择结果,并入库,比如我们这里面的“喜欢那个类型的女人”

我们先来创建一张表,表名叫“lp_code”如下所示:

 

 

然后我们创建一个vote2.php的文件,代码如下所示:

 <?php
    $openid = $_POST['openid'];
    $item = $_POST['radio1'];
    //因为取来的值后面自动加了一个 ' 所以要用substr去掉最后一个 '
    $openid = substr($openid,0,strlen($openid)-1); 
    
    $connect = mysql_connect('localhost','root','root') or die('数据库链接失败');
    mysql_select_db('wxdb',$connect);
    mysql_query('set names utf8');
    $sql = "select openid from lp_code where openid='{$openid}'";
    $res = mysql_query($sql);
    //$response主要用来做提示用的
    $response = '';
    //这里主要作用是判断一下如果投过票的就不让他再投了
    if($row = mysql_fetch_assoc($res)){
        $response = "您已选择过噢,本轮活动只能选择一次";
    }else{
        $sql = "insert into lp_code (id,openid,item) values(NULL,'{$openid}','{$item}')";
        mysql_query($sql);
        $response = "恭喜您,您已经选择成功";
    }
    
    //同分组的形式统计一下各个水果投票的次数
    $sql = "select item, count(*) as counts from lp_code group by item";
    $res = mysql_query($sql);
    
 ?>
 <!doctype html> 
<html> 
    <head> 
        <meta charset="utf-8"> 
        <title>数据采集系统</title> 
        <meta name="viewport" content="width=device-width,height=device-height,inital-scale=1.0, maximum-scale=1.0,user-scalable=no;"> 
        <meta name="apple-mobile-web-app-capable" content="yes"> 
        <meta name="apple-mobile-web-app-status-bar-style" content="black"> 
        <meta name="format-detection" content="telephone=no"> 
        <link href="http://code.jquery.com/mobile/1.0/jquery.mobile-1.0.min.css" rel="stylesheet" type="text/css"> 
        <script src="http://code.jquery.com/jquery-1.6.4.min.js" type="text/javascript"></script> 
        <script src="http://code.jquery.com/mobile/1.0/jquery.mobile-1.0.min.js" type="text/javascript"></script> 
    </head> 
    <body> 
        <div data-role="page" id="page3"> 
            <div data-role="header"> 
                <h1>水果投票情况一览</h1> 
            </div> 
            <div data-role="content"> 
                <ul data-role="listview"> 
                    <?php
                        //这里遍历出来大家选择了什么,选了几遍
                        while($row = mysql_fetch_assoc($res){ ?>
                    <li>
                        喜欢<?php echo $row['item']; ?>
                        <span class="ui-li-count"><?php echo $row['counts']; ?></span>
                    </li>
                    <?php } ?>
                    <li><font color='red'><?php echo $response; ?></font></li>
                </ul> 
            </div> 
        </div>
    </body> 
</html> 

然后反问上一节课里面的create_baseurl.php进行发送地址,当然如果在正常的情况下,

我们都是通过以图文之类的形式发送的,如果直接推送的是一条链接,谁都不敢点嘛,嘻嘻

然后在手机端里点击该链接进行投票即可

 

 

温馨提示:

code这里返回的access_token和基础接口里获取到的access_token是不一样的

posted @ 2016-03-09 02:26  夺命雷公狗  阅读(306)  评论(0编辑  收藏  举报