ホームページ >バックエンド開発 >PHPチュートリアル >ThinkPHP5開発(2) バックグラウンド検証付き登録機能を実装するグラフィックコードの詳細説明
効果:
検証効果:
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 */;コード
ディレクトリ構造:
2.
閲覧/登録/インデックス。 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>
<?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('index'); } //用户注册 public function regist(){ //实例化User $user = new User; //接收前端表单提交的数据 $user->user_name = input('post.user_name'); $user->user_sex = input('post.UserSex'); $user->user_tel = input('post.UserTel'); $user->user_email = input('post.UserEmail'); $user->user_address = input('post.UserAddress'); $user->user_birth = input('post.UserJoinTime'); $user->user_passwd = input('post.UserPasswd'); $user->user_signature = input('post.UserSignature'); $user->user_hobby = input('post.UserHobby'); //进行规则验证 $result = $this->validate( [ 'name' => $user->user_name, 'email' => $user->user_email, 'sex' => $user->user_sex, 'tel' => $user->user_tel, 'address' => $user->user_address, 'birth' => $user->user_birth, 'password' => $user->user_passwd, ], [ 'name' => 'require|max:10', 'email' => 'email', 'sex' => 'number|between:0,1', 'tel' => 'require', 'address' => 'require', 'birth' => 'require', 'password' => 'require', ]); if (true !== $result) { $this->error($result); } //写入数据库 if ($user->save()) { return $this->success('注册成功'); } else { return $this->success('注册失败'); } } }
を使用できます。モデル検証。ただし、モデル内の検証では User クラスが検証クラスを継承する必要がありますが、PHP は多重継承をサポートしていません。どの方法が自分にとって最適かを選択する必要があります。 詳細に関しては、認証ルールをカスタマイズして、正規表現
を使用して携帯電話番号やID番号などを認証することができます。 model/User.php<?phpnamespace app\index\model;use think\Model;class User extends Model{
protected $pk = 'user_id';
}
訪問先URL:
以上がThinkPHP5開発(2) バックグラウンド検証付き登録機能を実装するグラフィックコードの詳細説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。