1、后台需求
(1)管理员登录:帐号密码验证,验证码验证
(2)管理留言:单条删除,单条修改,批量删除
(3)管理员退出:退出后台
2、建库
知识点:
1、IP记录类型
2、用户锁定标识符类型
数据库需求
需要提交留言板内容
id(留言用户id) 类型为int,最大长度10位
username(管理员用户名) 类型为char,最大长度20位,不能为空,默认值为“匿名用户”
password(管理员密码) 类型为varchar,最大长度32位,不能为空
logintime(登录时间) 类型为timestamp,默认值为“当前时间”
loginip(登录IP) 类型为varchar,最大长度为30位
lock(用户锁定标识) 类型为tinyint,最大长度为1,默认为不锁定
转化为数据库类型为
表名tb_broad
id int类型(10位长度),非负,非空,自增
username char类型(20位长度),非空,默认为空
password varchar类型(32位长度),非空,默认为空
logintime timestamp类型,非空,默认是当前时间戳
loginip varchar类型,非空
lock tinyint类型,非负,非空,默认为0(即非锁定)
以下是建表的SQL
; html-script: false ] CREATE TABLE IF NOT EXISTS `tb_user` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT `username` char(20) NOT NULL DEFAULT '' `password` char(32) NOT NULL DEFAULT '' `logintime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '留言时间' `loginip` varchar(30) NOT NULL `lock` tinyint(1) unsigned NOT NULL DEFAULT '0' PRIMARY KEY (`id`) UNIQUE KEY `username` (`username`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; 1234567891011 ; html-script: false ]CREATE TABLE IF NOT EXISTS `tb_user` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT `username` char(20) NOT NULL DEFAULT '' `password` char(32) NOT NULL DEFAULT '' `logintime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '留言时间' `loginip` varchar(30) NOT NULL `lock` tinyint(1) unsigned NOT NULL DEFAULT '0' PRIMARY KEY (`id`) UNIQUE KEY `username` (`username`)) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;为了方便测试我们建立一条测试数据
; html-script: false ]INSERT INTO `board`.`tb_user` (`id` `username` `password` `logintime` `loginip` `lock`) VALUES (NULL 'admin' MD5( 'admin' ) CURRENT_TIMESTAMP '127.0.0.1' '0'); 1 ; html-script: false ]INSERT INTO `board`.`tb_user` (`id` `username` `password` `logintime` `loginip` `lock`) VALUES (NULL 'admin' MD5( 'admin' ) CURRENT_TIMESTAMP '127.0.0.1' '0');3、修改相关配置
知识点:
1、thinkphp单入口文件操作
2、admin.php入口文件,App配置,调试模式,引用框架
数据库配置好后,可在项目目录新建后台入口文件并定义项目名称,文件创建位置在网站根目录下(我的本地环境中为C:/wamp/www/)message(自建项目目录)/admin.php
接下来就要在admin.php入口文件中定义相关项目,具体内容如下:
老规矩,配置完这条,访问http://localhost/message/admin.php看见笑脸,就说明你配置框架成功了。同时可在message目录下,生成了admin目录。
接下来我们需要完成相关的数据库配置
文件路径为message/admin/Conf/config.php
添加内容如下:
4、建立控制器 Controller
知识点:
1、用户登录状态检查
2、用户登录验证
3、留言板信息显示、删除
4、验证码调用及使用方法
(1)配置全部完成,接下来就是我们开始写控制器的时候了,入口文件进来,都会找默认控制器,路径为message/admin/Lib/action/IndexAction.class.php
将原有内容删除,拷贝以下内容替代:
(2)接下来就来讲解下CommonAction,文件位置与IndexAction.class.php同级,命名为CommonAction.class.php
代码如下:
(3)同级目录下,建立LoginAction.class.php,作为登录验证控制器
代码如下:
(4)同级目录下,建立LogoutAction.class.php,(登出操作)
代码如下:
(5)同级目录下,建立MsgManageAction.class.php(管理留言操作)
由于是搭建一个简易版的留言板后台,所以这里只有显示和删除操作
代码如下:
5、建立模板表单 Viewer
知识点:
1、模板中调用thinkphp函数U
2、foreach标签用法(非html标签),循环输出变量中的各字段
后台需要建立3个页面,分别是登录首页Login,管理首页MsgManage和控制首页Index(如果加入js技术,可将管理首页和控制首页合并为一个)
控制器建立完毕,接下来就要基于控制器指定的路径建立模板文件
Index目录下建立index.html模板文件,路径为admin/Tpl/Index/index.html
Login目录下建立index.html模板文件,路径为admin/Tpl/Login/index.html
MsgManage目录下建立index.html模板文件,路径为admin/Tpl/Login/index.html
Index模板文件代码如下:
; html-script: false ]<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Message Board BackGround</title> </head> <body> <h2>简易后台登录系统</h2> <a href="{:U('admin.php/Logout/index')}" target="_self">退出</a> <a href="{:U('admin.php/MsgManage/index')}" target="_self">显示留言</a> <!-- U函数主要用于跳转 --> </body> </html> 12345678910111213141516 ; html-script: false ]<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Message Board BackGround</title></head><body> <h2>简易后台登录系统</h2><a href="{:U('admin.php/Logout/index')}" target="_self">退出</a><a href="{:U('admin.php/MsgManage/index')}" target="_self">显示留言</a> <!-- U函数主要用于跳转 --></body></html>Login模板文件代码如下:
; html-script: false ]<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Message Board BackGround</title> </head> <body> <form action="{:U('admin.php/Login/login')}" method="post" name="back_login" > <h2>简易后台登录系统</h2> 用户名:<input type='username' name='username' id='username' /> <br /> 密码:<input type='password' name='password' id='password' /> <br /> <input type="submit" value="登录"/> </form> </body> </html> 12345678910111213141516171819 ; html-script: false ]<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Message Board BackGround</title></head><body> <form action="{:U('admin.php/Login/login')}" method="post" name="back_login" > <h2>简易后台登录系统</h2> 用户名:<input type='username' name='username' id='username' /> <br /> 密码:<input type='password' name='password' id='password' /> <br /> <input type="submit" value="登录"/> </form> </body></html>MsgManage模板文件代码如下:
; html-script: false ]<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Message Board BackGround</title> </head> <body> <table class="table" border="1"> <tr> <th>ID</th> <th>发布者</th> <th>内容</th> <th>发布时间</th> <th>操作</th> </tr> <foreach name='board' item='b'> <tr> <td>{$b.id}</td> <td>{$b.username}</td> <td>{$b.content}</td> <td>{$b.time|date='y-m-d H:i'###}</td> <td><a href="{:U('admin.php/MsgManage/delete'array('id' => $b['id']))''}">删除</a></td> </tr> </foreach> //foreach内,大部分跟留言板首页一样,只是在这里加入了一个删除操作,第2个参数就是从控制器中提出的对应id </table> </body> </html> 1234567891011121314151617181920212223242526272829 ; html-script: false ]<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Message Board BackGround</title></head><body> <table class="table" border="1"> <tr> <th>ID</th> <th>发布者</th> <th>内容</th> <th>发布时间</th> <th>操作</th> </tr> <foreach name='board' item='b'> <tr> <td>{$b.id}</td> <td>{$b.username}</td> <td>{$b.content}</td> <td>{$b.time|date='y-m-d H:i'###}</td> <td><a href="{:U('admin.php/MsgManage/delete'array('id' => $b['id']))''}">删除</a></td> </tr> </foreach> //foreach内,大部分跟留言板首页一样,只是在这里加入了一个删除操作,第2个参数就是从控制器中提出的对应id </table></body></html> 收 藏
QQ:441747382