Zend Framework實(shí)現(xiàn)具有基本功能的留言本(附demo源碼下載),zenddemo_PHP教程
Jul 12, 2016 am 08:56 AMZend Framework實(shí)現(xiàn)具有基本功能的留言本(附demo源碼下載),zenddemo
本文實(shí)例講述了Zend Framework實(shí)現(xiàn)具有基本功能的留言本。分享給大家供大家參考,具體如下:
一個(gè)留言本...具有的基本功能就是.1.發(fā)表留言. 2.回復(fù)留言.3.管理留言(修改,刪除等操作).
我這里只是寫了基本的操作,比如加留言驗(yàn)證碼.頁面的美化什么的我都
沒有做.我只是給大家一個(gè)思想..很多東西要靠我們自己去學(xué)了.
另一個(gè)就是我的留言用了AJAX.就是你一發(fā)表.數(shù)據(jù)就會(huì)在頁面顯示..不過大家要了解Jquery的AJAX的用法..我相信大部分人都會(huì)這個(gè)JS類庫吧.
要是不懂也沒關(guān)系..你們可以改成不是AJAX的..只要把發(fā)表留言的FROM的提交動(dòng)作轉(zhuǎn)換成我們控制里的一個(gè)動(dòng)作..相信這個(gè)不是問題.好了..開始工作:
我們的目錄結(jié)構(gòu)和以前一樣,大致不變..下面要有改動(dòng)的..大家也不要急..我會(huì)教大家如何做:
第一:先建立好我們的模板頁面(View)..
按照上篇教程的目錄.application/views/scripts目錄下有一些模板頁.如(index.phtml,edit.phtml).我們刪除它們..現(xiàn)在加一個(gè)message文件夾.
在message里加上(edit.phtml,index.phtml,message.phtml)三個(gè)模板文件.完成后.我們?cè)赼pplication/views/scripts/目錄下加上(header.phtml,footer.phtml)二個(gè)模板文件.
因?yàn)檫@二個(gè)文件以后會(huì)重用來..所以把他們直接放到application/views/scripts/下..好了模板建立好了.現(xiàn)在就是加入一個(gè)HTML.JS.IMAGE了.我把他們這些都放在網(wǎng)站根目錄public文件夾下.大家可以對(duì)應(yīng)我的源碼來看一下..要是有點(diǎn)亂..請(qǐng)大家根據(jù)源碼來看這教程..(^_^不好意思,我只能這樣表達(dá).我也不知道如何寫才能讓你們更了解.請(qǐng)大家體諒啊!)
第二:接下來,我們寫我們的數(shù)據(jù)層程序(Model).
1.我們?cè)谠瓉淼谋碇屑由舷旅鎺讉€(gè)字段:pid(標(biāo)志是否是回復(fù),0為留言.為為0的是為回復(fù)) ,author(留言者),headimg(留言者頭像),email(留言者電子郵件), ip(留言者IP地址),
show(留言是否顯示.這個(gè)要在生臺(tái)管理能用.這教程這里沒有用到.), addtime(留言時(shí)間), updatetime(留言修改時(shí)間).字段類型的設(shè)置請(qǐng)大家看源碼SQL文件.
2.我們?cè)赼pplication/models/目錄下有一個(gè)Message.php.我們先寫好我們留言本的Model .主要是對(duì)留言本數(shù)據(jù)層的操作.我增加了下面幾個(gè)方法:
getAllMessage(取到所有的留言) , getAllReMessage(取到所有的回復(fù)留言數(shù)據(jù)) , getMessageByID(根據(jù)ID取留言數(shù)據(jù)), 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; } /* * 取到所有的回復(fù)留言數(shù)據(jù) */ public function getAllReMessage(){ $ReArray=$this->fetchAll("message.pid!=0", "message.id DESC")->toArray(); return $ReArray; } /* * 根據(jù)ID取留言數(shù)據(jù) */ 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; } }
第三:完成上面二項(xiàng).最后就我們的控制層了(Controller).打開application/controllers/IndexController.php這個(gè)控制器..把原來的不要的東西給刪除了.我在上面加上了下面
一個(gè)message方法(也叫動(dòng)作Action).不過其它的Action都有改動(dòng)..請(qǐng)大家參與源碼來進(jìn)行分析.這里我只貼也我新加入的messageAction這個(gè)方法(代碼上都有注解.請(qǐng)自行查看.謝謝):
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地址..這里只是簡(jiǎn)單取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 //二個(gè)方法在Model(Message.php)里定義的 $this->view->messages=$message->getAllMessage(); //取到所有回復(fù)數(shù)據(jù) $this->view->arrReviews=$message->getAllReMessage(); $this->view->flag='0'; $this->view->message='您的留言發(fā)表成功!'; echo $this->view->render('message/message.phtml'); } else { $this->view->flag='5'; $this->view->message='對(duì)不起!您填寫有電子郵箱地址有誤!'; echo $this->view->render('message/message.phtml'); } }elseif($username==''){ $this->view->flag='1'; $this->view->message='對(duì)不起!您的大名不能為空!'; echo $this->view->render('message/message.phtml'); }elseif($messageid==''){ $this->view->flag='2'; $this->view->message='對(duì)不起!回復(fù)留言編號(hào)不能為空!'; echo $this->view->render('message/message.phtml'); }elseif($content==''){ $this->view->flag='3'; $this->view->message='對(duì)不起!您填寫的留言內(nèi)容不能為空!'; echo $this->view->render('message/message.phtml'); } }else{ echo $this->view->render('message/index.phtml'); } }
只是沒有驗(yàn)證碼以及分頁功能..后面一篇會(huì)有教程進(jìn)一步講解.
總結(jié):到這里就完成了一個(gè)留言本的編寫.當(dāng)然很簡(jiǎn)單的功能..還是那句話.我只是把我會(huì)的寫給大家..只是一個(gè)思想..我也只會(huì)這些..所以寫的好與不好..請(qǐng)大家自己進(jìn)行權(quán)衡
完整實(shí)例代碼點(diǎn)擊此處本站下載。
更多關(guān)于zend相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Zend FrameWork框架入門教程》、《php優(yōu)秀開發(fā)框架總結(jié)》、《Yii框架入門及常用技巧總結(jié)》、《ThinkPHP入門教程》、《php面向?qū)ο蟪绦蛟O(shè)計(jì)入門教程》、《php+mysql數(shù)據(jù)庫操作入門教程》及《php常見數(shù)據(jù)庫操作技巧匯總》
希望本文所述對(duì)大家基于Zend Framework框架的PHP程序設(shè)計(jì)有所幫助。
您可能感興趣的文章:
- Zend Framework框架教程之Zend_Db_Table_Rowset用法實(shí)例分析
- Zend Framework教程之Zend_Db_Table_Row用法實(shí)例分析
- Zend Framework教程之Zend_Db_Table用法詳解
- Zend Framework教程之Zend_Form組件實(shí)現(xiàn)表單提交并顯示錯(cuò)誤提示的方法
- Zend Framework開發(fā)入門經(jīng)典教程
- Zend Framework框架Smarty擴(kuò)展實(shí)現(xiàn)方法
- Zend Framework框架路由機(jī)制代碼分析
- Zend Framework實(shí)現(xiàn)將session存儲(chǔ)在memcache中的方法
- Zend Framework分頁類用法詳解
- Zend Framework實(shí)現(xiàn)多文件上傳功能實(shí)例
- Zend Framework入門之環(huán)境配置及第一個(gè)Hello World示例(附demo源碼下載)
- Zend Framework教程之連接數(shù)據(jù)庫并執(zhí)行增刪查的方法(附demo源碼下載)
- Zend Framework教程之Zend_Db_Table表關(guān)聯(lián)實(shí)例詳解

熱AI工具

Undress AI Tool
免費(fèi)脫衣圖片

Undresser.AI Undress
人工智慧驅(qū)動(dòng)的應(yīng)用程序,用於創(chuàng)建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費(fèi)的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費(fèi)的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強(qiáng)大的PHP整合開發(fā)環(huán)境

Dreamweaver CS6
視覺化網(wǎng)頁開發(fā)工具

SublimeText3 Mac版
神級(jí)程式碼編輯軟體(SublimeText3)

每當(dāng)您的Windows11或Windows10PC出現(xiàn)升級(jí)或更新問題時(shí),您通常會(huì)看到一個(gè)錯(cuò)誤代碼,指示故障背後的實(shí)際原因。但是,有時(shí),升級(jí)或更新失敗可能不會(huì)顯示錯(cuò)誤代碼,這時(shí)就會(huì)混淆。有了方便的錯(cuò)誤代碼,您可以確切地知道問題出在哪裡,因此您可以嘗試修復(fù)。但是由於沒有出現(xiàn)錯(cuò)誤代碼,因此識(shí)別問題並解決它變得極具挑戰(zhàn)性。這會(huì)佔(zhàn)用您大量時(shí)間來簡(jiǎn)單地找出錯(cuò)誤背後的原因。在這種情況下,您可以嘗試使用Microsoft提供的名為SetupDiag的專用工具,該工具可協(xié)助您輕鬆識(shí)別錯(cuò)誤背後的真

.NETFramework4是開發(fā)人員和最終使用者在Windows上執(zhí)行最新版本的應(yīng)用程式所必需的。但是,在下載安裝.NETFramework4時(shí),許多用戶抱怨安裝程式在中途停止,顯示以下錯(cuò)誤訊息-「?.NETFramework4hasnotbeeninstalledbecauseDownloadfailedwitherrorcode0x800c0006?」。在您的裝置上安裝.NETFramework4時(shí),如果您也在體驗(yàn)它,那麼您就來對(duì)了地方
![SCNotification 已停止運(yùn)作 [修復(fù)它的 5 個(gè)步驟]](https://img.php.cn/upload/article/000/887/227/168433050522031.png?x-oss-process=image/resize,m_fill,h_207,w_330)
身為Windows用戶,您很可能會(huì)在每次啟動(dòng)電腦時(shí)遇到SCNotification已停止工作錯(cuò)誤。 SCNotification.exe是一個(gè)微軟系統(tǒng)通知文件,由於權(quán)限錯(cuò)誤和點(diǎn)網(wǎng)故障等原因,每次啟動(dòng)PC時(shí)都會(huì)崩潰。此錯(cuò)誤也以其問題事件名稱而聞名。因此,您可能不會(huì)將其視為SCNotification已停止工作,而是將其視為錯(cuò)誤clr20r3。在本文中,我們將探討您需要採取的所有步驟來修復(fù)SCNotification已停止運(yùn)作,以免它再次困擾您。什麼是SCNotification.e

PHP實(shí)作框架:ZendFramework入門教學(xué)ZendFramework是PHP開發(fā)的開源網(wǎng)站框架,目前由ZendTechnologies維護(hù),ZendFramework採用了MVC設(shè)計(jì)模式,提供了一系列可重複使用的程式碼庫,服務(wù)於實(shí)作Web2.0應(yīng)用程式和Web服務(wù)。 ZendFramework深受PHP開發(fā)者的歡迎與推崇,擁有廣泛

已安裝Microsoft.NET版本4.5.2、4.6或4.6.1的MicrosoftWindows用戶如果希望Microsoft將來透過產(chǎn)品更新支援該框架,則必須安裝較新版本的Microsoft框架。據(jù)微軟稱,這三個(gè)框架都將在2022年4月26日停止支援。支援日期結(jié)束後,產(chǎn)品將不會(huì)收到「安全修復(fù)或技術(shù)支援」。大多數(shù)家庭設(shè)備透過Windows更新保持最新。這些設(shè)備已經(jīng)安裝了較新版本的框架,例如.NETFramework4.8。未自動(dòng)更新的設(shè)備可能

如何在Zend框架中使用ACL(AccessControlList)進(jìn)行權(quán)限控制導(dǎo)言:在一個(gè)Web應(yīng)用程式中,權(quán)限控制是至關(guān)重要的功能。它可以確保使用者只能存取其有權(quán)存取的頁面和功能,並防止未經(jīng)授權(quán)的存取。 Zend框架提供了一種方便的方法來實(shí)現(xiàn)權(quán)限控制,即使用ACL(AccessControlList)元件。本文將介紹如何在Zend框架中使用ACL

自從我們談?wù)撚绊懓惭bKB5012643forWindows11的用戶的新安全模式錯(cuò)誤以來已經(jīng)過去了一周。這個(gè)討厭的問題並沒有出現(xiàn)在微軟在發(fā)布當(dāng)天發(fā)布的已知問題清單中,因此讓所有人都感到驚訝。好吧,就在您認(rèn)為情況不會(huì)變得更糟的時(shí)候,微軟為安裝此累積更新的用戶投下了另一顆炸彈。 Windows11Build22000.652導(dǎo)致更多問題因此,這家科技公司警告Windows11用戶,他們?cè)趩?dòng)和使用某些.NETFramework3.5應(yīng)用程式時(shí)可能會(huì)遇到問題。聽起來很熟悉?不過請(qǐng)不要驚

什麼是0xc0000135錯(cuò)誤,我為什麼會(huì)得到它?根據(jù)Microsoft官方文檔,0xc0000135錯(cuò)誤代碼與.NetFramework問題有關(guān)。似乎許多需要.NetFramework3.5才能工作的應(yīng)用程式無法與最新的Windows11更新一起使用。這就是導(dǎo)致0xc0000135錯(cuò)誤代碼的原因,您可以透過在PC上啟用.NetFramework3.5來解決此問題。大多數(shù)現(xiàn)代應(yīng)用程式都依賴.NetFramework.dll檔案在後臺(tái)按預(yù)期運(yùn)行。但是
