首页 » 微信公众平台开发:从零基础到ThinkPHP5高性能框架实践 » 微信公众平台开发:从零基础到ThinkPHP5高性能框架实践全文在线阅读

《微信公众平台开发:从零基础到ThinkPHP5高性能框架实践》24.5.3 用户信息收集

关灯直达底部

用户信息收集主要由用户填写表单来实现。这里使用<from>标签。

<form>标签用于为用户输入创建HTML表单。表单能够包含input元素,如文本字段、复选框、单选框、提交按钮等。下面是表单的代码,它包含姓名、手机号码的输入,还隐性地提交当前用户的OpenID。


<form method="post" action="submit.php" onsubmit="return tgSubmit">    <ul>        <li><span>填写入口</span></li>        <li>            <table  border="0" cellspacing="0" cellpadding="0">                <tbody>                    <tr>                        <th>姓名</th>                        <td><input type="name" placeholder="请输入您的姓名"                         name="name" >                        </td>                    </tr>                </tbody>            </table>            <table  border="0" cellspacing="0" cellpadding="0">                <tbody>                    <tr>                        <th>手机号码</th>                        <td><input type="mobile" placeholder="请输入您的                        手机号码" name="mobile" >                        </td>                    </tr>                </tbody>            </table>        </li>    </ul>    <p >        <input type="hidden" name="openid" >        <input type="submit"          >    </p></form>  

用户在填写后提交时,先使用Java Script脚本验证内容的合法性。这包括验证姓名是否为空,以及手机号码位数是否正确。其代码如下。


<script>    function showTip(tipTxt) {        var p = document.createElement('p');        p.innerHTML = '<p><p>' + tipTxt + '</p></p>';        var tipNode = p.firstChild;        $("#wrap").after(tipNode);        setTimeout(function  {            $(tipNode).remove;        }, 1500);    }    function tgSubmit{        var name=$("#name").val;        if($.trim(name) == ""){            showTip('请输入姓名')            return false;        }        var mobile=$("#mobile").val;        var patrn = /^[0-9]{11}$/;        if (!patrn.exec($.trim(mobile))) {            showTip('请正确输入手机号码')            return false;        }        return true;    }</script>  

信息验证成功之后,会通过POST方式发到一个新的页面。在该页面中,将用户的OpenID、姓名及电话都写入数据库中,实现代码如下。


$openid    = $_POST["openid"];$name      = $_POST["name"];$mobile    = $_POST["mobile"];if (empty($openid) || empty($name) || empty($mobile)){    // var_dump($_POST);    echo '<meta http-equiv="refresh" content="0; url=index.php"/>';}else{    include_once('mysql.class.php');    $db = new class_mysql;    $mysql_state = "INSERT INTO 'wx_user' ('id', 'openid', 'name', 'mobile') VALUES     (NULL, '$openid', '$name', '$mobile');";    $config = $db->execute($mysql_state);    // var_dump($mysql_state);    Header("Location: lottery.php?openid=$openid");}