請到git中下載后臺的模板。
* * * * *
同樣使用了bootstrap做后臺,這樣手機端也可以同時使用。
安裝驗證碼控件。
composer require topthink/think-captcha
驗證碼配置
然后在應用配置文件中添加驗證碼的配置參數
* * * * *
'captcha' => [
// 驗證碼字符集合
'codeSet' => '2345678abcdefhijkmnpqrstuvwxyzABCDEFGHJKLMNPQRTUVWXY',
// 驗證碼字體大小(px)
'fontSize' => 25,
// 是否畫混淆曲線
'useCurve' => true,
// 驗證碼圖片高度
'imageH' => 30,
// 驗證碼圖片寬度
'imageW' => 100,
// 驗證碼位數
'length' => 5,
// 驗證成功后是否重置
'reset' => true
],
* * * * *
并且確保開啟了URL路由。
驗證碼顯示
* * * * *
<div>{:captcha_img()}</div>
* * * * *
或者
* * * * *
`<Div>< Img src= " {:captcha_src()} " alt="captcha" onclick="this.src=this.src+'?'+Math.random()" ></Div>`
* * * * *
上面兩種的最終效果是一樣的,根據需要調用即可。
控制器驗證
使用TP5的內置驗證功能,添加captcha驗證規則即可
* * * * *
$this->validate($data,[
'captcha|驗證碼'=>'require|captcha'
]);
* * * * *
或者手動驗證
* * * * *
if(!captcha_check($captcha)){
//驗證失敗
};
* * * * *
我們再引入權限管理的相關表:
~~~
-- ----------------------------
-- Table structure for auth_group
-- ----------------------------
DROP TABLE IF EXISTS `auth_group`;
CREATE TABLE `auth_group` (
`id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT,
`title` char(100) NOT NULL DEFAULT '',
`status` tinyint(1) NOT NULL DEFAULT '1',
`rules` char(80) NOT NULL DEFAULT '',
PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=2 DEFAULT CHARSET=utf8 COMMENT='用戶組表';
-- ----------------------------
-- Records of auth_group
-- ----------------------------
INSERT INTO `auth_group` VALUES ('1', '管理組', '1', '1,2');
-- ----------------------------
-- Table structure for auth_group_access
-- ----------------------------
DROP TABLE IF EXISTS `auth_group_access`;
CREATE TABLE `auth_group_access` (
`uid` mediumint(8) unsigned NOT NULL COMMENT '用戶id',
`group_id` mediumint(8) unsigned NOT NULL COMMENT '用戶組id',
UNIQUE KEY `uid_group_id` (`uid`,`group_id`),
KEY `uid` (`uid`),
KEY `group_id` (`group_id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='用戶組明細表';
-- ----------------------------
-- Records of auth_group_access
-- ----------------------------
INSERT INTO `auth_group_access` VALUES ('1', '1');
INSERT INTO `auth_group_access` VALUES ('1', '2');
-- ----------------------------
-- Table structure for auth_rule
-- ----------------------------
DROP TABLE IF EXISTS `auth_rule`;
CREATE TABLE `auth_rule` (
`id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT,
`name` char(80) NOT NULL DEFAULT '' COMMENT '規則唯一標識',
`title` char(20) NOT NULL DEFAULT '' COMMENT '規則中文名稱',
`status` tinyint(1) NOT NULL DEFAULT '1' COMMENT '狀態:為1正常,為0禁用',
`type` char(80) NOT NULL,
`condition` char(100) NOT NULL DEFAULT '' COMMENT '規則表達式,為空表示存在就驗證,不為空表示按照條件驗證',
PRIMARY KEY (`id`),
UNIQUE KEY `name` (`name`)
) ENGINE=MyISAM AUTO_INCREMENT=5 DEFAULT CHARSET=utf8 COMMENT='規則表';
-- ----------------------------
-- Records of auth_rule
-- ----------------------------
INSERT INTO `auth_rule` VALUES ('1', 'Home/index', '列表', '1', 'Home', '');
INSERT INTO `auth_rule` VALUES ('2', 'Home/add', '添加', '1', 'Home', '');
INSERT INTO `auth_rule` VALUES ('3', 'Home/edit', '編輯', '1', 'Home', '');
INSERT INTO `auth_rule` VALUES ('4', 'Home/delete', '刪除', '1', 'Home', '');
DROP TABLE IF EXISTS `user`;
CREATE TABLE `user` (
`id` int(11) NOT NULL,
`username` varchar(30) DEFAULT NULL,
`password` varchar(32) DEFAULT NULL,
`age` tinyint(2) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
-- ----------------------------
-- Records of user
-- ----------------------------
INSERT INTO `user` VALUES ('1', 'admin', '21232f297a57a5a743894a0e4a801fc3', '25');
~~~
http://www.bootcdn.cn/ 加速庫