留言板后台

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

(二)ThinkPHP实践之留言板后台

-TTLSA

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

1 2 3 4 5 6 7 8 ; 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',

9

10

11 PRIMARY KEY (`id`),

UNIQUE KEY `username` (`username`)

) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; 为了方便测试我们建立一条测试数据

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入口文件中定义相关项目,具体内容如下:

1 2 3 4 5 6 7 8 ; html-script: false ]

define('APP_NAME', 'admin'); //项目名,可自定义

define('APP_PATH', './admin/'); //项目路径,访问入口文件,即可自动生成,无需手动创建,注意最后的'/',如果不加,会将项目文件散落在message根目录下define('APP_DEBUG', TRUE); //调试模式,如果在开发阶段,建议在开发阶段开启

require './ThinkPHP/ThinkPHP.php'; //重点*,加了这条,框架才能生效

?>

老规矩,配置完这条,访问http://localhost/message/admin.php看见笑脸,就说明你配置框架成功了。同时可在message目录下,生成了admin目录。

接下来我们需要完成相关的数据库配置

文件路径为message/admin/Conf/config.php

添加内容如下:

1 2 3 4 ; html-script: false ]

//数据库相关配置

5 6 7 8 9

10

11

'DB_TYPE' => 'mysql', //数据库类型

'DB_NAME' => 'board', //数据库名

'DB_USER' => 'root', //连接数据库帐号

'DB_PWD' => '', //连接数据库密码

'DB_PREFIX' => 'tb_' //数据库表前缀,这样在后面实例化的时候就不需要再填写同样的表前缀了

);

?>

4、建立控制器Controller

知识点:

1、用户登录状态检查

2、用户登录验证

3、留言板信息显示、删除

4、验证码调用及使用方法

(1)配置全部完成,接下来就是我们开始写控制器的时候了,入口文件进来,都会找默认控制器,路径为message/admin/Lib/actio n/IndexAction.class.php

将原有内容删除,拷贝以下内容替代:

1 2 3 4 5 6 7 8 ; html-script: false ]

//留言板后台控制器

class IndexAction extends CommonAction {

//注意这里的CommonAction,这是自定义的类,主要用于一些初始化操作,如用户登录状态检查等,具体内容将在下面进行讲解

public function index(){

$this->display();

}

}

(2)接下来就来讲解下CommonAction,文件位置与IndexAction.class.php同级,命名为CommonAction.class.php 代码如下:

1 2 3 4 5 6 7 8 9 ; html-script: false ]

//通用类,这里主要是为了做登录验证,之后如果需要登录验证的页面,只要继承这个类,即可判断用户是否登录,如果未登录,即跳回登录页面Class CommonAction extends Action {

Public function _initialize () {

//_initialize是一个初始化方法,也就是程序自动执行的一个方法

if (!isset($_SESSION['uid']) || !isset($_SESSION['username'])) {

//判断是否定义$_SESSION['uid']或者$_SESSION['username']

$this->redirect('admin.php/Login/index');

//如果未定义,就跳转回login页面admin.php/Login/index

相关文档
最新文档