


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

Alat AI Hot

Undress AI Tool
Gambar buka pakaian secara percuma

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Clothoff.io
Penyingkiran pakaian AI

Video Face Swap
Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Setiap kali PC Windows 11 atau Windows 10 anda mempunyai masalah naik taraf atau kemas kini, anda biasanya akan melihat kod ralat yang menunjukkan sebab sebenar di sebalik kegagalan. Walau bagaimanapun, kadangkala kekeliruan boleh timbul apabila peningkatan atau kemas kini gagal tanpa kod ralat dipaparkan. Dengan kod ralat yang berguna, anda tahu dengan tepat di mana masalahnya supaya anda boleh cuba membetulkannya. Tetapi kerana tiada kod ralat muncul, ia menjadi mencabar untuk mengenal pasti isu dan menyelesaikannya. Ini akan mengambil banyak masa anda untuk mengetahui sebab di sebalik ralat. Dalam kes ini, anda boleh cuba menggunakan alat khusus yang dipanggil SetupDiag yang disediakan oleh Microsoft yang membantu anda mengenal pasti dengan mudah sebab sebenar di sebalik ralat.

.NET Framework 4 diperlukan oleh pembangun dan pengguna akhir untuk menjalankan versi terkini aplikasi pada Windows. Walau bagaimanapun, semasa memuat turun dan memasang .NET Framework 4, ramai pengguna mengadu bahawa pemasang berhenti di tengah jalan, memaparkan mesej ralat berikut - " .NET Framework 4 belum dipasang kerana Muat turun gagal dengan kod ralat 0x800c0006 ". Jika anda juga mengalaminya semasa memasang .NETFramework4 pada peranti anda maka anda berada di tempat yang betul
![SCNotification telah berhenti berfungsi [5 langkah untuk membetulkannya]](https://img.php.cn/upload/article/000/887/227/168433050522031.png?x-oss-process=image/resize,m_fill,h_207,w_330)
Sebagai pengguna Windows, anda mungkin akan menghadapi ralat SCNotification telah berhenti berfungsi setiap kali anda memulakan komputer anda. SCNotification.exe ialah fail pemberitahuan sistem Microsoft yang ranap setiap kali anda memulakan PC anda kerana ralat kebenaran dan kegagalan rangkaian. Ralat ini juga dikenali dengan nama acaranya yang bermasalah. Jadi anda mungkin tidak melihat ini sebagai SCNotification telah berhenti berfungsi, tetapi sebagai pepijat clr20r3. Dalam artikel ini, kami akan meneroka semua langkah yang anda perlu ambil untuk membetulkan SNotification telah berhenti berfungsi supaya ia tidak mengganggu anda lagi. Apakah itu SNotification.e

Rangka kerja pelaksanaan PHP: Tutorial pengenalan ZendFramework ZendFramework ialah rangka kerja tapak web sumber terbuka yang dibangunkan oleh PHP dan kini diselenggara oleh ZendTechnologies menggunakan corak reka bentuk MVC dan menyediakan satu siri perpustakaan kod boleh guna semula untuk melaksanakan aplikasi Web2.0 dan Web Serve. ZendFramework sangat popular dan dihormati oleh pembangun PHP dan mempunyai pelbagai jenis

Pengguna Microsoft Windows yang telah memasang Microsoft.NET versi 4.5.2, 4.6 atau 4.6.1 mesti memasang versi Microsoft Framework yang lebih baharu jika mereka mahu Microsoft menyokong rangka kerja melalui kemas kini produk masa hadapan. Menurut Microsoft, ketiga-tiga rangka kerja akan menghentikan sokongan pada 26 April 2022. Selepas tarikh sokongan tamat, produk tidak akan menerima "pembetulan keselamatan atau sokongan teknikal." Kebanyakan peranti rumah sentiasa dikemas kini melalui kemas kini Windows. Peranti ini sudah mempunyai versi rangka kerja yang lebih baharu yang dipasang, seperti .NET Framework 4.8. Peranti yang tidak mengemas kini secara automatik boleh

Cara menggunakan ACL (AccessControlList) untuk kawalan kebenaran dalam Rangka Kerja Zend Pengenalan: Dalam aplikasi web, kawalan kebenaran ialah fungsi penting. Ia memastikan bahawa pengguna hanya boleh mengakses halaman dan ciri yang dibenarkan untuk mereka akses dan menghalang akses yang tidak dibenarkan. Rangka kerja Zend menyediakan cara yang mudah untuk melaksanakan kawalan kebenaran, menggunakan komponen ACL (AccessControlList). Artikel ini akan memperkenalkan cara menggunakan ACL dalam Rangka Kerja Zend

Sudah seminggu sejak kita bercakap tentang pepijat mod selamat baharu yang menjejaskan pengguna yang memasang KB5012643 untuk Windows 11. Isu menjengkelkan ini tidak muncul dalam senarai isu yang diketahui yang disiarkan oleh Microsoft pada hari pelancaran, lantas mengejutkan semua orang. Nah, apabila anda fikir keadaan tidak akan menjadi lebih buruk, Microsoft menjatuhkan bom lain untuk pengguna yang telah memasang kemas kini kumulatif ini. Windows 11 Build 22000.652 menyebabkan lebih banyak masalah Jadi syarikat teknologi memberi amaran kepada pengguna Windows 11 bahawa mereka mungkin mengalami masalah melancarkan dan menggunakan beberapa aplikasi .NET Framework 3.5. Bunyi biasa? Tapi tolong jangan terkejut

Apakah ralat 0xc0000135 dan mengapa saya mendapatkannya? Menurut dokumentasi rasmi Microsoft, kod ralat 0xc0000135 berkaitan dengan isu .NetFramework. Nampaknya banyak aplikasi yang memerlukan .NetFramework3.5 untuk berfungsi tidak berfungsi dengan kemas kini Windows 11 terkini. Inilah yang menyebabkan kod ralat 0xc0000135 dan anda boleh menyelesaikan isu ini dengan mendayakan .NetFramework3.5 pada PC anda. Kebanyakan aplikasi moden bergantung pada fail .NetFramework.dll untuk dijalankan seperti yang diharapkan di latar belakang. tetapi
