Zend Framework實現具有準系統的留言本(附demo源碼下載),zenddemo_PHP教程

來源:互聯網
上載者:User

Zend Framework實現具有準系統的留言本(附demo源碼下載),zenddemo


本文執行個體講述了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相關內容感興趣的讀者可查看本站專題:《Zend FrameWork架構入門教程》、《php優秀開發架構總結》、《Yii架構入門及常用技巧總結》、《ThinkPHP入門教程》、《php物件導向程式設計入門教程》、《php+mysql資料庫操作入門教程》及《php常見資料庫操作技巧匯總》

希望本文所述對大家基於Zend Framework架構的PHP程式設計有所協助。

您可能感興趣的文章:

  • Zend Framework架構教程之Zend_Db_Table_Rowset用法執行個體分析
  • Zend Framework教程之Zend_Db_Table_Row用法執行個體分析
  • Zend Framework教程之Zend_Db_Table用法詳解
  • Zend Framework教程之Zend_Form組件實現表單提交並顯示錯誤提示的方法
  • Zend Framework開發入門經典教程
  • Zend Framework架構Smarty擴充實現方法
  • Zend Framework架構路由機制程式碼分析
  • Zend Framework實現將session儲存在memcache中的方法
  • Zend Framework分頁類用法詳解
  • Zend Framework實現多檔案上傳功能執行個體
  • Zend Framework入門之環境配置及第一個Hello World樣本(附demo源碼下載)
  • Zend Framework教程之串連資料庫並執行增刪查的方法(附demo源碼下載)
  • Zend Framework教程之Zend_Db_Table表關聯執行個體詳解

http://www.bkjia.com/PHPjc/1113722.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/1113722.htmlTechArticleZend Framework實現具有準系統的留言本(附demo源碼下載),zenddemo 本文執行個體講述了Zend Framework實現具有準系統的留言本。分享給大家供大家參...

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.