skymvc开发手册之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("删除成功");
		}
		
		
	}

?>