首頁  >  文章  >  後端開發  >  ThinkPHP5開發(二)實作背景驗證的註冊功能的圖文程式碼詳解

ThinkPHP5開發(二)實作背景驗證的註冊功能的圖文程式碼詳解

黄舟
黄舟原創
2017-03-21 10:11:402788瀏覽

效果: 

ThinkPHP5開發(二)實作背景驗證的註冊功能的圖文程式碼詳解
驗證效果:
ThinkPHP5開發(二)實作背景驗證的註冊功能的圖文程式碼詳解
ThinkPHP5開發(二)實作背景驗證的註冊功能的圖文程式碼詳解
ThinkPHP5開發(二)實作背景驗證的註冊功能的圖文程式碼詳解
ThinkPHP5開發(二)實作背景驗證的註冊功能的圖文程式碼詳解

# 1.資料庫SQL腳本

-- phpMyAdmin SQL Dump
-- version 4.4.15.5
-- http://www.phpmyadmin.net
--
-- Host: localhost
-- Generation Time: 2016-07-09 13:12:42
-- 服务器版本: 5.7.12-log
-- PHP Version: 7.0.7

SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
SET time_zone = "+00:00";


/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8mb4 */;

--
-- Database: `thinkphp5`
--

-- --------------------------------------------------------

--
-- 表的结构 `think_user`
--

CREATE TABLE IF NOT EXISTS `think_user` (
  `user_id` int(11) NOT NULL,
  `user_name` varchar(255) NOT NULL,
  `user_sex` int(11) DEFAULT NULL,
  `user_tel` varchar(255) DEFAULT NULL,
  `user_email` varchar(255) DEFAULT NULL,
  `user_address` varchar(255) DEFAULT NULL,
  `user_birth` varchar(255) DEFAULT NULL,
  `user_jointime` varchar(255) DEFAULT NULL,
  `user_passwd` varchar(255) DEFAULT NULL,
  `user_signature` varchar(255) DEFAULT NULL,
  `user_hobby` varchar(255) DEFAULT NULL
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8mb4;

--
-- 转存表中的数据 `think_user`
--

INSERT INTO `think_user` (`user_id`, `user_name`, `user_sex`, `user_tel`, `user_email`, `user_address`, `user_birth`, 
`user_jointime`, `user_passwd`, `user_signature`, `user_hobby`) VALUES
(1, 'thinkphp', 1, '15700000000', 'emial@email.com', '山东省济南市****路', '1111111', '111111', 'qqq', NULL, NULL),
(2, 'pangPython', 1, '15700000000', 'email@emial.com', '山东省济南市', '201607096', NULL, '123456', 'nihao', '上速度速度');

--
-- Indexes for dumped tables
--

--
-- Indexes for table `think_user`
--
ALTER TABLE `think_user`
  ADD PRIMARY KEY (`user_id`);

--
-- AUTO_INCREMENT for dumped tables
--

--
-- AUTO_INCREMENT for table `think_user`
--
ALTER TABLE `think_user`
  MODIFY `user_id` int(11) NOT NULL AUTO_INCREMENT,AUTO_INCREMENT=3;
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
程式碼
目錄結構ThinkPHP5開發(二)實作背景驗證的註冊功能的圖文程式碼詳解
#2 .寫入
檢視

view/regist/index. html

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <title>注册</title>
  </head>
  <style>
    dl{
        text-align:center;
        border:2px solid #00CC99;
        margin-top:100px;
      margin-bottom:100px;
      margin-right:400px;
      margin-left:400px;
    }
  </style>
  <body>

<div id="regist_form">
<dl>
  <form action="regist" method="post">
<dt>
    <p>姓名:<input type="text" name="user_name"></p>
</dt>

<dt>
  <p>性别:<input type="text" name="UserSex"></p>
</dt>

<dt>

  <p>手机:<input type="text" name="UserTel"></p>
</dt>
<dt>

  <p>邮件:<input type="text" name="UserEmail"></p>
</dt>

<dt>

  <p>地址:<input type="text" name="UserAddress"></p>
</dt>

<dt>
  <p>生日:<input type="text" name="UserBirth"></p>
</dt>

<dt>
    <p>加入时间:<input type="text" name="UserJoinTime"></p>
</dt>

<dt>
  <p>密码:<input type="password" name="UserPasswd"></p>
</dt>

<dt>
  <p>个性签名:<input type="text" name="UserSignature"></p>
</dt>

<dt>
  <p>喜好:<input type="text" name="UserHobby"></p>
</dt>
<dt>
  <p><input type="submit" value="注册"></p>
</dt>
  </form>

</dl>
</div>
  </body>
</html>
3 .寫入
控制器

controller/Regist.php

<?php
namespace app\index\controller;
use think\View;
use think\Controller;
use app\index\model\User;
class Regist extends Controller{

  public function index(){
    $view = new View();
    return $view->fetch(&#39;index&#39;);

  }

  //用户注册
  public function regist(){
    //实例化User
    $user = new User;
    //接收前端表单提交的数据
    $user->user_name = input(&#39;post.user_name&#39;);
    $user->user_sex = input(&#39;post.UserSex&#39;);
    $user->user_tel = input(&#39;post.UserTel&#39;);
    $user->user_email = input(&#39;post.UserEmail&#39;);
    $user->user_address = input(&#39;post.UserAddress&#39;);
    $user->user_birth = input(&#39;post.UserJoinTime&#39;);
    $user->user_passwd = input(&#39;post.UserPasswd&#39;);
    $user->user_signature = input(&#39;post.UserSignature&#39;);
    $user->user_hobby = input(&#39;post.UserHobby&#39;);
    //进行规则验证
    $result = $this->validate(
      [
        &#39;name&#39; => $user->user_name,
        &#39;email&#39; => $user->user_email,
        &#39;sex&#39; => $user->user_sex,
        &#39;tel&#39; => $user->user_tel,
        &#39;address&#39; => $user->user_address,
        &#39;birth&#39; => $user->user_birth,
        &#39;password&#39; => $user->user_passwd,
      ],
      [
        &#39;name&#39; => &#39;require|max:10&#39;,
        &#39;email&#39; => &#39;email&#39;,
        &#39;sex&#39; => &#39;number|between:0,1&#39;,
        &#39;tel&#39; => &#39;require&#39;,
        &#39;address&#39; => &#39;require&#39;,
        &#39;birth&#39; => &#39;require&#39;,
        &#39;password&#39; => &#39;require&#39;,
      ]);
    if (true !== $result) {
      $this->error($result);
    }

    //写入数据库
    if ($user->save()) {
      return $this->success(&#39;注册成功&#39;);
    } else {
      return $this->success(&#39;注册失败&#39;);
    }


  }
}
thinkphp5手冊中提供了很多種進行驗證的方法,可以在控制器進行驗證,可以使用助手函數,可以在model進行驗證,不過在model進行驗證需要User類
繼承驗證類,但是PHP不支援多重繼承。需要自己選擇哪一種方式最適合。 細節方面,驗證規則可以自訂實作使用

正規表示式

驗證手機號,身分證號等。

model/User.php

<?phpnamespace app\index\model;use think\Model;class User extends Model{
    protected $pk = &#39;user_id&#39;;

}

造訪的URL: ###http://localhost/tp5/public/index.php/index/regist/###

以上是ThinkPHP5開發(二)實作背景驗證的註冊功能的圖文程式碼詳解的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn