《PHP應用:Zend Framework實現具有基本功能的留言本(附demo源碼下載)》要點:
本文介紹了PHP應用:Zend Framework實現具有基本功能的留言本(附demo源碼下載),希望對您有用。如果有疑問,可以聯系我們。
PHP編程本文實例講述了Zend Framework實現具有基本功能的留言本.分享給大家供大家參考,具體如下:
PHP編程一個留言本...具有的基本功能就是.1.頒發留言. 2.回復留言.3.管理留言(修改,刪除等操作).
PHP編程我這里只是寫了基本的操作,比如加留言驗證碼.頁面的美化什么的我都
沒有做.我只是給大家一個思想..很多東西要靠我們自己去學了.
PHP編程另一個就是我的留言用了AJAX.就是你一頒發.數據就會在頁面顯示..不過大家要了解Jquery的AJAX的用法..我相信大部分人都會這個JS類庫吧.
PHP編程要是不懂也沒關系..你們可以改成不是AJAX的..只要把頒發留言的FROM的提交動作轉換成我們控制里的一個動作..相信這個不是問題.好了..開始工作:
PHP編程我們的目錄結構和以前一樣,大致不變..下面要有改動的..大家也不要急..我會教大家如何做:
PHP編程第一:先建立好我們的模板頁面(View)..
PHP編程依照上篇教程的目錄.application/views/scripts目錄下有一些模板頁.如(index.phtml,edit.phtml).我們刪除它們..現在加一個message文件夾.
PHP編程在message里加上(edit.phtml,index.phtml,message.phtml)三個模板文件.完成后.我們在application/views/scripts/目錄下加上(header.phtml,footer.phtml)二個模板文件.
PHP編程因為這二個文件以后會重用來..所以把他們直接放到application/views/scripts/下..好了模板建立好了.現在就是加入一個HTML.JS.IMAGE了.我把他們這些都放在網站根目錄public文件夾下.大家可以對應我的源碼來看一下..要是有點亂..請大家根據源碼來看這教程..(^_^不好意思,我只能這樣表達.我也不知道如何寫才能讓你們更了解.請大家體諒啊!)
PHP編程第二:接下來,我們寫我們的數據層程序(Model).
PHP編程1.我們在原來的表中加上下面幾個字段:pid(標志是否是回復,0為留言.為為0的是為回復) ,author(留言者),headimg(留言者頭像),email(留言者電子郵件), ip(留言者IP地址),
show(留言是否顯示.這個要在生臺管理能用.這教程這里沒有用到.), addtime(留言時間), updatetime(留言修改時間).字段類型的設置請大家看源碼SQL文件.
PHP編程2.我們在application/models/目錄下有一個Message.php.我們先寫好我們留言本的Model .主要是對留言本數據層的操作.我增加了下面幾個辦法:
getAllMessage(取到所有的留言) , getAllReMessage(取到所有的回復留言數據) , getMessageByID(根據ID取留言數據), updateMessageByID(修改留言), delMessageByID(刪除留言)
PHP編程具體程序如下(程序上面也有注解):
PHP編程
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;
}
}
PHP編程第三:完成上面二項.最后就我們的控制層了(Controller).打開application/controllers/IndexController.php這個控制器..把原來的不要的東西給刪除了.我在上面加上了下面
PHP編程一個message辦法(也叫動作Action).不過其它的Action都有改動..請大家參與源碼來進行分析.這里我只貼也我新加入的messageAction這個辦法(代碼上都有注解.請自行查看.謝謝):
PHP編程
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');
}
}
PHP編程只是沒有驗證碼以及分頁功能..后面一篇會有教程進一步講解.
PHP編程總結:到這里就完成了一個留言本的編寫.當然很簡單的功能..還是那句話.我只是把我會的寫給大家..只是一個思想..我也只會這些..所以寫的好與不好..請大家自己進行權衡
PHP編程完整實例代碼點擊此處本站下載.
PHP編程更多關于zend相關內容感興趣的讀者可查看本站專題:《Zend FrameWork框架入門教程》、《php優秀開發框架總結》、《Yii框架入門及常用技巧總結》、《ThinkPHP入門教程》、《php面向對象程序設計入門教程》、《php+mysql數據庫操作入門教程》及《php常見數據庫操作技巧匯總》
PHP編程希望本文所述對大家基于Zend Framework框架的PHP程序設計有所贊助.
維易PHP培訓學院每天發布《PHP應用:Zend Framework實現具有基本功能的留言本(附demo源碼下載)》等實戰技能,PHP、MYSQL、LINUX、APP、JS,CSS全面培養人才。
轉載請注明本頁網址:
http://www.snjht.com/jiaocheng/7269.html