网站地图    收藏   

主页 > 后端 > PHP语言 >

PHP+XML留言板

来源:未知    时间:2014-11-06 15:30 作者:xxadmin 阅读:

[导读] ? class Message_XML extends DomDocument{//Message_XML类,继承PHP5的DomDocument类 private $Root;//属性 //方法 public function __construct(){//构造函数 parent:: __construct(); if (!file_exists(message.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网专注网站建设学习,PHP程序学习,平面设计学习,以及操作系统学习

京ICP备14009008号-1@版权所有www.zixuephp.com

网站声明:本站所有视频,教程都由网友上传,站长收集和分享给大家学习使用,如由牵扯版权问题请联系站长邮箱904561283@qq.com

添加评论