skymvc开发手册之skymvc留言板的制作
skymvc教学课程
第7课 skymvc 留言板的制作
/**********
*大家好,本节课是实践课,你们需要自己动手做,我只给大家讲讲留言板的制作思路。
*留言板是网站很常用的功能模块
*主要有功能
前台 登录 注册 展示留言、发表留言 我的留言
后台 登录 注册 管理留言 审核留言 回复留言
*/
表
CREATE TABLE `sky_guest` ( `id` int(11) NOT NULL AUTO_INCREMENT, `title` varchar(50) DEFAULT '' COMMENT '主题', `userid` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '用户id', `catid` tinyint(4) unsigned NOT NULL DEFAULT '0' COMMENT '类型', `bstatus` tinyint(1) unsigned NOT NULL DEFAULT '0' COMMENT '状态', `email` varchar(50) DEFAULT '0' COMMENT '邮箱', `qq` varchar(15) NOT NULL DEFAULT '' COMMENT 'QQ', `dateline` int(11) unsigned NOT NULL DEFAULT '0' COMMENT '留言时间', `content` text COMMENT '留言内容', `reply_content` text COMMENT '回复内容', `reply_time` int(11) unsigned DEFAULT NULL COMMENT '回复时间', PRIMARY KEY (`id`), KEY `userid` (`userid`,`id`) USING BTREE ) ENGINE=MyISAM AUTO_INCREMENT=9 DEFAULT CHARSET=utf8 COMMENT='留言板';
需求分析
1.前台
所有用户可以看留言
登录用户发表留言 编辑留言 删除留言
登录用户只能处理自己的留言
需要登录的操作 跳转到登录页面
2.后台
后台要先登录 未登录的跳转到后台登录页面
后台可以 查看留言 回复留言 删除留言
index/guest.ctrl.php
<?php /** *Author 雷日锦 362606856@qq.com *控制器自动生成 */ if(!defined("ROOT_PATH")) exit("die Access "); class guestControl extends skymvc{ public function __construct(){ parent::__construct(); } public function onInit(){ if(in_array(get('a'),array("add","save","my","delete"))){ if(!$this->get_session("ssuser")){ $this->goAll("请先登录",0,0,"/index.php?m=login"); } } } public function onDefault(){ $where="1"; $url="/index.php?m=guest&a=default"; $limit=5; $start=get("per_page","i"); $option=array( "start"=>intval(get_post('per_page')), "limit"=>$limit, "order"=>" id DESC", "where"=>$where ); $rscount=true; $data=M("guest")->select($option,$rscount); //分页 $pagelist=$this->pagelist($rscount,$limit,$url); //end分页 $per_page=$start+$limit; $per_page=$per_page>=$rscount?0:$per_page; $this->smarty->goassign( array( "data"=>$data, "pagelist"=>$pagelist, "rscount"=>$rscount, "url"=>$url, "per_page"=>$per_page, "catlist"=>M("guest")->catlist() ) ); $this->smarty->display("guest/index.html"); } public function onShow(){ $id=get_post("id","i"); $data=M("guest")->selectRow(array("where"=>"id={$id}")); $this->smarty->goassign(array( "data"=>$data, "catlist"=>M("guest")->catlist() )); $this->smarty->display("guest/show.html"); } public function onAdd(){ $id=get_post("id","i"); if($id){ $data=M("guest")->selectRow(array("where"=>"id={$id}")); if($data['userid']!=$this->get_session('ssuser','userid')){ $this->goAll("您无权限",1); } } $this->smarty->goassign(array( "data"=>$data, "catlist"=>M("guest")->catlist() )); $this->smarty->display("guest/add.html"); } public function onMy(){ $userid=$this->get_session("ssuser",'userid'); $where=" userid=".$userid; $url="/index.php?m=guest&a=my"; $limit=5; $start=get("per_page","i"); $option=array( "start"=>intval(get_post('per_page')), "limit"=>$limit, "order"=>" id DESC", "where"=>$where ); $rscount=true; $data=M("guest")->select($option,$rscount); //分页 $pagelist=$this->pagelist($rscount,$limit,$url); //end分页 $per_page=$start+$limit; $per_page=$per_page>=$rscount?0:$per_page; $this->smarty->goassign( array( "data"=>$data, "pagelist"=>$pagelist, "rscount"=>$rscount, "url"=>$url, "per_page"=>$per_page, "catlist"=>M("guest")->catlist() ) ); $this->smarty->display("guest/my.html"); } public function onSave(){ $id=get_post("id","i"); $data=M("guest")->postdata(); $data['userid']=intval($this->get_session('ssuser','userid')); if(empty($data['title']) ){ $this->goAll("主题不能为空",1); } if(empty($data['content']) ){ $this->goAll("内容不能为空",1); } if(!is_email($data['email'])){ $this->goAll("邮箱格式不正确",1); } $data["dateline"]=time(); if($id){ $row=M("guest")->selectRow("id=".$id); if($row['userid']!=$this->get_session('ssuser','userid')){ $this->goAll("您无权限",1); } M("guest")->update($data,"id='$id'"); }else{ M("guest")->insert($data); } $this->goall("保存成功"); } public function onDelete(){ $id=get_post('id',"i"); $row=M("guest")->selectRow("id=".$id); if($row['userid']!=$this->get_session('ssuser','userid')){ $this->goAll("您无权限",1); } M("guest")->delete("id=".$id); $this->goall("删除成功"); } } ?>
admin/guest.ctrl.php
<?php /** *Author 雷日锦 362606856@qq.com *控制器自动生成 */ if(!defined("ROOT_PATH")) exit("die Access "); class guestControl extends skymvc{ public function __construct(){ parent::__construct(); } public function onInit(){ if(!$this->get_session('ssadmin')){ $this->goAll("请先登录",0,0,"/admin.php"); } } public function onDefault(){ $where="1"; $url="/admin.php?m=guest&a=default"; $limit=5; $start=get("per_page","i"); $option=array( "start"=>intval(get_post('per_page')), "limit"=>$limit, "order"=>" id DESC", "where"=>$where ); $rscount=true; $data=M("guest")->select($option,$rscount); //分页 $pagelist=$this->pagelist($rscount,$limit,$url); //end分页 $per_page=$start+$limit; $per_page=$per_page>=$rscount?0:$per_page; $this->smarty->goassign( array( "data"=>$data, "pagelist"=>$pagelist, "rscount"=>$rscount, "url"=>$url, "per_page"=>$per_page, "catlist"=>M("guest")->catlist() ) ); $this->smarty->display("guest/index.html"); } public function onAdd(){ $id=get_post("id","i"); if($id){ $data=M("guest")->selectRow(array("where"=>"id={$id}")); } $this->smarty->goassign(array( "data"=>$data, "catlist"=>M("guest")->catlist() )); $this->smarty->display("guest/add.html"); } public function onSave(){ $id=get_post("id","i"); $data=M("guest")->postdata(); $data['userid']=intval($this->get_session('ssuser','userid')); if(empty($data['title']) ){ $this->goAll("主题不能为空",1); } if(empty($data['content']) ){ $this->goAll("内容不能为空",1); } if(!is_email($data['email'])){ $this->goAll("邮箱格式不正确",1); } $data["dateline"]=time(); if($id){ $data["reply_time"]=time(); M("guest")->update($data,"id='$id'"); }else{ M("guest")->insert($data); } $this->goall("保存成功"); } public function onDelete(){ $id=get_post('id',"i"); M("guest")->delete("id=".$id); $this->goall("删除成功"); } } ?>