讀古今文學網 > 微信公眾平台開發:從零基礎到ThinkPHP5高性能框架實踐 > 24.5.3 用戶信息收集 >

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