好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

PHP+XML留言板

<? class Message_XML extends DomDocument{//Message_XML类,继承PHP5的DomDocument类 private $Root;//属性 //方法 public function __construct(){//构造函数     parent:: __construct();     if (!file_exists("message.xml")){//创建或读取存储留言信息的XML文档message.xml      $xmlstr = "<?xml version='1.0' encoding='UTF-8'?><message></message>";      $this->loadXML($xmlstr);      $this->save("message.xml");     }     else      $this->load("message.xml"); } //增加留言 public function add_message($Subject,$Content,$Poster){//标题,内容, 发布人     $Root = $this->documentElement;           //获取留言消息           $AutoID =date("Ynjhis");//年月日时分秒           $Node_AutoID= $this->createElement("autoid");           $text= $this->createTextNode($AutoID);           $Node_AutoID->appendChild($text);           $Node_Subject = $this->createElement("subject");           $text    = $this->createTextNode($Subject);           $Node_Subject->appendChild($text);           $Node_Content = $this->createElement("content");           $text= $this->createTextNode($Content);           $Node_Content->appendChild($text);           $Node_Poster = $this->createElement("poster");           $text = $this->createTextNode($Poster);           $Node_Poster->appendChild($text);           //建立一条留言记录           $Node_Record = $this->createElement("record");           $Node_Record->appendChild($Node_AutoID);           $Node_Record->appendChild($Node_Subject);           $Node_Record->appendChild($Node_Content);           $Node_Record->appendChild($Node_Poster);           //加入到根结点下           $Root->appendChild($Node_Record);           $this->save("message.xml");            echo "<script>alert('添加成功');location.href='".$_SERVER['PHP_SELF']."'</script>"; }

//删除留言 public function delete_message($AutoID){//根据ID删除           $Root = $this->documentElement;           //查询用户选择删除的留言记录           $xpath = new DOMXPath($this);           $Node_Record= $xpath->query("//record[autoid=$AutoID]");           $Root->removeChild($Node_Record->item(0));           $this->save("message.xml");           echo "<script>alert('删除成功');location.href='".$_SERVER['PHP_SELF']."'</script>"; }

//显示留言 public function show_message(){           $Root    = $this->documentElement;           $xpath = new DOMXPath($this);           //查询所有的留言记录           $Node_Record = $this->getElementsByTagName("record");           $Node_Record_Length    =$Node_Record->length;           //循环输出其留言标题和内容信息           for($i=0;$i<$Node_Record->length;$i++){      $K=0;               foreach ($Node_Record->item($i)->childNodes as $articles){       $Field[$K]=$articles->textContent;                   $K++;               }               print "<li>";               print "<b>留言标题:</b>$Field[1]&nbsp;&nbsp;<b>发布人:</b>$Field[3]<br><b>留言内容:</b><br>$Field[2]               <div align=right><a href='?Action=update_message&AutoID=$Field[0]'>编辑</a>               <a href='?Action=delete_message&AutoID=$Field[0]'>删除</a></div>/n";               print "</li>";           } }

//修改留言 public function update_message($AutoID){//根据ID修改           $Root    = $this->documentElement;           $xpath = new DOMXPath($this);           $Node_Record = $xpath->query("//record[autoid=$AutoID]");           $K=0;           foreach ($Node_Record->item(0)->childNodes as $articles){      $Field[$K]=$articles->textContent;//元素的内容               $K++;           }           print "<form method='post' action='?Action=save_message&AutoID=$AutoID'>";           print "<li>留言标题:<input type=text name='Subject' value='$Field[1]' size=20></li>";           print "<li>留言内容:<textarea name='Content' cols=50 rows=5>$Field[2]</textarea></li>";           print "<li>发布人:<input type=text name='Poster' value='$Field[3]' size=20></li>";           print "<li><input type='submit' value='修改留言'></li></form>"; }           //保存留言 public function save_message($AutoID,$Subject,$Content,$Poster){//ID,标题,内容, 发布人           $Root    = $this->documentElement;           //查询待修改的记录           $xpath = new DOMXPath($this);           $Node_Record    = $xpath->query("//record[autoid=$AutoID]");           $Replace[0]=$AutoID;           $Replace[1]=$Subject;           $Replace[2]=$Content;           $Replace[3]=$Poster;           $K=0;           //修改           foreach ($Node_Record->item(0)->childNodes as $articles){            $Node_newText = $this->createTextNode($Replace[$K]);                $articles->replaceChild($Node_newText,$articles->lastChild);//***************有点疑问               $K++;           }           echo "<script>alert('修改成功');location.href='".$_SERVER['PHP_SELF']."'</script>";           $this->save("message.xml");       }                               //上传留言信息       public function post_message(){           print "<form method='post' action='?Action=add_message'>";           print "<li>留言标题:<input type=text name='Subject' size=20></li>";           print "<li>留言内容:<textarea name='Content' cols=50 rows=5></textarea></li>";           print "<li>发布人:<input type=text name='Poster' size=20></li>";           print "<li><input type='submit' value='添加留言'></li></form>";       } }//class end ?> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>PHP+XML留言板</title> <style type="text/css"> #box{width:980px;magin:0 auto} #box ul{list-style:none;padding:0;margin:0;margin-bottom:20px} #box ul li{list-style:none;padding:0;margin:0;margin-bottom:5px} </style> </head> <body>  <div id="box">  <h3><strong>PHP+XML留言板</strong></h3>                                       <ul><a href=?Action=post_message>发表留言</a>&nbsp;&nbsp;<a href=?Action=show_message>显示留言</a></ul>   <ul>   <?php   //使用Message_XML类完成留言板   $HawkXML = new Message_XML;//创建一个实例   $Action ="";   if(isset($_GET['Action']))   $Action = $_GET['Action'];   switch($Action){     case "show_message":          //查看             $HawkXML->show_message();             break;     case "post_message"://提交             $HawkXML->post_message();             break;     case "add_message"://增加             $HawkXML->add_message($_POST['Subject'],$_POST['Content'],$_POST['Poster']);             break;       case "delete_message"://删除             $HawkXML->delete_message($_GET["AutoID"]);             break;     case "update_message"://修改             $HawkXML->update_message($_GET["AutoID"]);             break;     case "save_message"://保存             $HawkXML->save_message($_GET["AutoID"],$_POST['Subject'],$_POST['Content'],$_POST['Poster']);             break;     default://默认查看             $HawkXML->show_message();             break;   }   ?>   </ul>  </div> </body> </html>

查看更多关于PHP+XML留言板的详细内容...

  阅读:39次