中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Zend Framework如何實現具有基本功能的留言本

發布時間:2021-08-27 10:44:51 來源:億速云 閱讀:124 作者:小新 欄目:開發技術

這篇文章主要介紹Zend Framework如何實現具有基本功能的留言本,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!

具體如下:

一個留言本...具有的基本功能就是.1.發表留言. 2.回復留言.3.管理留言(修改,刪除等操作).

我這里只是寫了基本的操作,比如加留言驗證碼.頁面的美化什么的我都
沒有做.我只是給大家一個思想..很多東西要靠我們自己去學了.

另一個就是我的留言用了AJAX.就是你一發表.數據就會在頁面顯示..不過大家要了解Jquery的AJAX的用法..我相信大部分人都會這個JS類庫吧.

要是不懂也沒關系..你們可以改成不是AJAX的..只要把發表留言的FROM的提交動作轉換成我們控制里的一個動作..相信這個不是問題.好了..開始工作:

我們的目錄結構和以前一樣,大致不變..下面要有改動的..大家也不要急..我會教大家如何做:

第一:先建立好我們的模板頁面(View)..

按照上篇教程的目錄.application/views/scripts目錄下有一些模板頁.如(index.phtml,edit.phtml).我們刪除它們..現在加一個message文件夾.

在message里加上(edit.phtml,index.phtml,message.phtml)三個模板文件.完成后.我們在application/views/scripts/目錄下加上(header.phtml,footer.phtml)二個模板文件.

因為這二個文件以后會重用來..所以把他們直接放到application/views/scripts/下..好了模板建立好了.現在就是加入一個HTML.JS.IMAGE了.我把他們這些都放在網站根目錄public文件夾下.大家可以對應我的源碼來看一下..要是有點亂..請大家根據源碼來看這教程..(^_^不好意思,我只能這樣表達.我也不知道如何寫才能讓你們更了解.請大家體諒啊!)

第二:接下來,我們寫我們的數據層程序(Model).

1.我們在原來的表中加上下面幾個字段:pid(標志是否是回復,0為留言.為為0的是為回復) ,author(留言者),headimg(留言者頭像),email(留言者電子郵件), ip(留言者IP地址),
show(留言是否顯示.這個要在生臺管理能用.這教程這里沒有用到.), addtime(留言時間), updatetime(留言修改時間).字段類型的設置請大家看源碼SQL文件.

2.我們在application/models/目錄下有一個Message.php.我們先寫好我們留言本的Model .主要是對留言本數據層的操作.我增加了下面幾個方法:
getAllMessage(取到所有的留言) , getAllReMessage(取到所有的回復留言數據) , getMessageByID(根據ID取留言數據), updateMessageByID(修改留言), delMessageByID(刪除留言)

具體程序如下(程序上面也有注解):

class Message extends Zend_Db_Table
{
 protected $_name ="message";
 protected $_primary = 'id';
 /* * 取到所有的留言 */
 public function getAllMessage(){
 $messageArray=$this->fetchAll("message.pid=0",
      "message.id DESC")->toArray();
 return $messageArray;
 }
 /* * 取到所有的回復留言數據 */
 public function getAllReMessage(){
 $ReArray=$this->fetchAll("message.pid!=0",
      "message.id DESC")->toArray();
 return $ReArray;
 }
 /* * 根據ID取留言數據 */
 public function getMessageByID($id){
 $messageone=$this->fetchAll('id='.$id)->toArray();
 return $messageone;
 }
 /* * 修改留言 */
 public function updateMessageByID($array,$id){
 $db = $this->getAdapter();
 $where=$db->quoteInto('id = ?', $id);
 $this->update($array, $where);
 }
 /* * 刪除留言 */
 public function delMessageByID($id){
 $where = 'id = ' . $id;
   $this->delete($where);
   return true;
 }
}

第三:完成上面二項.最后就我們的控制層了(Controller).打開application/controllers/IndexController.php這個控制器..把原來的不要的東西給刪除了.我在上面加上了下面

一個message方法(也叫動作Action).不過其它的Action都有改動..請大家參與源碼來進行分析.這里我只貼也我新加入的messageAction這個方法(代碼上都有注解.請自行查看.謝謝):

public function messageAction()
{
 if($this->_request->isPost()){
 Zend_Loader::loadClass('Zend_Filter_StripTags');
 $filter=new Zend_Filter_StripTags();
 $username=$filter->filter($this->_request->getPost('username'));
 $email=$filter->filter($this->_request->getPost('email'));
 $content=$filter->filter($this->_request->getPost('content'));
 $title=$filter->filter($this->_request->getPost('title'));
 $messageid=$filter->filter($this->_request->getPost('messageid'));
 $headimg=$filter->filter($this->_request->getPost('headimg'));
 $message=new Message();
 $db=$message->getAdapter();
 if($username!=''&&$email!=''&&$messageid!=''&&$content!=''){
 require_once 'Zend/Validate/EmailAddress.php';
 $validator = new Zend_Validate_EmailAddress();
 if ($validator->isValid($email)) {
 //取IP地址..這里只是簡單取IP
 $IP=$_SERVER ["REMOTE_ADDR"];
 $data=array(
 'title'=>$title,
 'author'=>$username,
  'pid'=>$messageid,
 'headimg'=>$headimg,
 'email'=>$email,
 'show'=>'1',
 'content'=>$content,
  'ip'=>$IP,
 'addtime'=>time(),
 'updatetime'=>time()
 );
 $message->insert($data);
 $db->lastInsertId();
 unset($data);
  //取到所有留言getAllMessage,getAllReMessage
  //二個方法在Model(Message.php)里定義的
  $this->view->messages=$message->getAllMessage();
 //取到所有回復數據
 $this->view->arrReviews=$message->getAllReMessage();
 $this->view->flag='0';
 $this->view->message='您的留言發表成功!';
 echo $this->view->render('message/message.phtml');
 } else {
 $this->view->flag='5';
 $this->view->message='對不起!您填寫有電子郵箱地址有誤!';
 echo $this->view->render('message/message.phtml');
 }
  }elseif($username==''){
  $this->view->flag='1';
 $this->view->message='對不起!您的大名不能為空!';
  echo $this->view->render('message/message.phtml');
 }elseif($messageid==''){
  $this->view->flag='2';
 $this->view->message='對不起!回復留言編號不能為空!';
  echo $this->view->render('message/message.phtml');
 }elseif($content==''){
  $this->view->flag='3';
 $this->view->message='對不起!您填寫的留言內容不能為空!';
  echo $this->view->render('message/message.phtml');
  }
  }else{
  echo $this->view->render('message/index.phtml');
  }
}

以上是“Zend Framework如何實現具有基本功能的留言本”這篇文章的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

桃园市| 新野县| 五指山市| 名山县| 永和县| 金寨县| 洛阳市| 万安县| 中牟县| 阳谷县| 肃宁县| 深泽县| 金秀| 珠海市| 句容市| 天祝| 唐山市| 天峨县| 瓦房店市| 铜川市| 望江县| 甘肃省| 徐州市| 古蔺县| 陆良县| 东辽县| 金坛市| 隆安县| 沙坪坝区| 澄迈县| 敦化市| 湖口县| 许昌县| 东兴市| 微山县| 甘洛县| 厦门市| 赞皇县| 石河子市| 永昌县| 额敏县|