项目需求
1.用户注册、登陆
2.发表留言
3.删除本人留言
4.查看本人留言
项目环境参数
ThinkPHP3.2.3
PhpStorm
项目结构
Mysql数据库建表
注意 sql语句中 `` 与 '' 的区别
创建用户表
DROP TABLE
IF EXISTS `jiat_user`;
CREATE TABLE `jiat_user` (
`user_id` INT (10) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '用户ID',
`username` VARCHAR (40) NOT NULL,
`password` CHAR (32) NOT NULL,
`create_at` INT (10) NOT NULL,
PRIMARY KEY (`user_id`),
KEY `createAt` (`create_at`) USING BTREE,
KEY `username` (`username`) USING BTREE
) ENGINE = MyISAM AUTO_INCREMENT = 1 DEFAULT CHARSET = utf8;
创建留言表
DROP TABLE
IF EXISTS `jiat_message`;
CREATE TABLE `jiat_message` (
`message_id` INT (10) UNSIGNED NOT NULL AUTO_INCREMENT,
`content` VARCHAR (100) NOT NULL,
`create_at` INT (10) NOT NULL,
`user_id` INT (10) UNSIGNED NOT NULL,
PRIMARY KEY (`message_id`),
KEY `createAt` (`create_at`) USING BTREE,
KEY `userId` (`user_id`) USING BTREE
) ENGINE = MyISAM AUTO_INCREMENT = 1 DEFAULT CHARSET = utf8;
ThinkPHP中的数据库配置
路径:message_borad/Application/Home/Conf/config.php
'配置值'
'DB_TYPE' => 'mysql',
'DB_HOST' => 'localhost',
'DB_PORT' => 3306,
'DB_USER' => 'root',
'DB_PWD' => '',
'DB_NAME' => 'message_board',
'DB_PREFIX' => 'jiat_'
);
Model层
创建MessageViewModel.class.php
路径:message_borad/Application/Home/Model/MessageViewModel.class.php
array('message_id', 'content', 'create_at'),
'User' => array('user_id', 'username', '_on' => 'Message.user_id=User.user_id')
);
}
Controller层
1.创建UserController.class.php
路径:message_borad/Application/Home/Controller/UserController.class.php
display();
}
//注册处理
function do_register() {
$username = I('username');
$password = I('password');
$password_repeat = I('password_repeat');
if (empty($username)) {
$this->error('用户名不能为空');
}
if (empty($password)) {
$this->error('密码不能为空');
}
if ($password != $password_repeat) {
$this->error('两次输入的密码不一致');
}
$userModel = new Model('User');
$user = $userModel->where(array("username" => $username))->find();
if (!empty($user)) {
$this->error('用户名已存在');
}
$userInfo = array("username" => $username, "password" => md5($password), "create_at" => time());
if (!($userModel->create($userInfo) && $userModel->add())) {
$this->error('注册失败' . $userModel->getDbError);
}
$this->success('注册成功', U('login'));
}
//登陆
function login() {
$this->display();
}
//登陆处理
function do_login() {
$username = I('username');
$password = I('password');
if (empty($username)) {
$this->error('用户名不能为空');
}
if (empty($password)) {
$this->error('密码不能为空');
}
$userModel = new Model('User');
$user = $userModel->where(array("username" => $username))->find();
if (empty($user)) {
$this->error('用户不存在');
}
if ($user["password"] != md5($password)) {
$this->error('密码错误');
}
//写入session
session('user.user_id', $user['user_id']);
session('user.username', $user['username']);
//跳转首页
$this->redirect('Index/index');
}
//退出
function logout() {
if (!session('user.user_id')) {
$this->error('请登录');
}
session_destroy();
$this->success('退出成功', U('Index/index'));
}
}
2.创建IndexController.class.php
路径:message_borad/Application/Home/Controller/IndexController.class.php
count();
$page = new Page($count, 10);
$show = $page->show();
$message_list = $messageModel->order("message_id desc")->limit($page->firstRow . "," . $page->listRows)->select();
dump($message_list);
die();
$this->assign("page", $show);
$this->assign("message_list", $message_list);
$this->display();
}
/**
* 发表留言
*/
public function add() {
//$this->check_login();
$this->display();
}
/**
* 处理发表留言
*/
public function do_add() {
$this->check_login();
$content = I("content");
if (empty($content)) {
$this->error("留言内容不能为空");
}
if (mb_strlen(trim($content), "utf-8") > 100) {
$this->error("留言内容不能超过100个字");
}
$messageModel = new Model("Message");
$user_id = session("user.user_id");
$data = array("content" => $content, "user_id" => $user_id, "create_at" => time());
if (!($messageModel->create($data) && $messageModel->add())) {
$this->error("发表留言失败");
}
$this->success("发表留言成功!", U("Index/index"));
}
/**
* 删除留言
*/
public function delete() {
$message_id = I("message_id");
if (empty($message_id)) {
$this->error("缺少参数");
}
$this->check_login();
$messageModel = new Model("Message");
$result = $messageModel->where(array("message_id" => $message_id, "user_id" => session('user.user_id')))->delete();
if (!$result) {
$this->error("删除失败");
}
$this->success("删除成功!", U("Index/index"));
}
/**
* 检测登陆
*/
public function check_login() {
if (!session("user.user_id")) {
$this->error("请先登陆", U("User/login"));
}
}
}
View层
1.创建register.html
路径:message_borad/Application/Home/View/User/register.html
注册
用户注册
2.创建login.html
路径:message_borad/Application/Home/View/User/login.html
登陆
用户登陆
3.创建add.html
路径:message_borad/Application/Home/View/Index/add.html
发表留言
4.创建index.html
路径:message_borad/Application/Home/View/Index/index.html
留言板
留言板
项目测试
1.用户注册
http://localhost/message_board/index.php/Home/User/register
2.用户登录
http://localhost/message_board/index.php/Home/User/login
3.发表留言
http://localhost/message_board/index.php/Home/Index/add
4.留言列表
http://localhost/message_board/index.php/Home/Index/index
源码地址 https://github.com/jt1024/message_board