<?phpclass Message_XML extends DomDocument{//Message_XML类,继承PHP5的DomCocument类private $Root;public function __construct(){parent::__construct();if(!file_exists('message.xml')){//创建或读取存取留言信息的XML文档messagexml$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){//内容 发布人 发布时间$Root = $this->documentElement;//获取留言信息$AutoID = date("Ynjhis");//年月日时分秒$Node_AutoID = $this->createElement("autoid");$text = $this->createTextNode(iconv("GB2312","UTF-8",$AutoID));$Node_AutoID->appendChild($text);$Node_Subject = $this->createElement("subject");$text = $this->createTextNode(iconv("GB2312","UTF-8",$Subject));$Node_Subject->appendChild($text);$Node_Content = $this->createElement("content");$text = $this->createTextNode(iconv("GB2312","UTF-8",$Content));$Node_Content->appendChild($text);//建立一条留言记录$Node_Record = $this->createElement("record");$Node_Record->appendChild($Node_AutoID);$Node_Record->appendChild($Node_Subject);$Node_Record->appendChild($Node_Content);//加入到根节点下$Root->appendChild($Node_Record);$this->save("message.xml");echo "<script>alert('添加成功!');location.href='".$_SERVER['PHP_SELF']."'</script>";}//删除留言public function delete_message($AutoID){$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;//循环输出其留言标题和内容信息echo '<div id="messagelist">';for($i=0;$i<$Node_Record->length;$i++){$k = 0;foreach($Node_Record->item($i)->childNodes as $articles){$Field[$k] = iconv("UTF-8","GB2312",$articles->textContent);$k++;}echo "<div><b>$Field[1]</b>留言说:<b>$Field[2]</b><a href='?Action=update_message&AutoID=$Field[0]'>编辑</a><a href='?Action=delete_message&AutoID=$Field[0]'>删除</a></div>";echo '</div>';}}//修改留言public function update_message($AutoID){$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] = iconv("UTF-8","GB2312",$articles->textContent);$k++;}echo "<form method='post' action='?Action=save_message&AutoID=$AutoID'>";echo "<div>留言标题:<input type='text' name='Subject' value='".$Field[1]."' size='20'></div>";echo "<div>留言内容:<textarea name='Content' cols='50' rows='5'>".$Field[2]."</textarea></div>";echo "<div><input type='submit' value='修改留言'></div></form>";}//保存留言public function save_message($AutoID,$Subject,$Content){$Root = $this->documentElement;//查询待修改的记录$xpath = new DOMXPATH($this);$Node_Record = $xpath->query("//record[autoid=$AutoID]");$Replace[0] = $AutoID;$Replace[1] = $Subject;$Replace[2] = $Content;$k = 0;//修改foreach($Node_Record->item(0)->childNodes as $articles){$Node_newText = $this->createTextNode(iconv("GB2312","UTF-8",$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(){echo '<form method="post" action="?Action=add_message">';echo '<div>留言标题:<input type="text" name="Subject" size="20"></div>';echo '<div>留言内容:<textarea name="Content" cols="50" rows="5"></textarea></div>';echo '<div><input type="submit" value="添加留言"></div></form>';}}
?>
<html><head><meta http-equiv="Content-Type" content="text/html;charset=gb2312"/><title>PHP+XML留言板</title><style>td,body{font-size:14px;}#messagelist div{border:1px dotted #999999;margin:4px;padding:6px;}#messagelist div b{}#messagelist div a{float:right;margin-top:-20px;color:#000000;margin-right:4px;}#messagelist div a:hover{background:#FF0000};</style></head><body><div align="center"><a href="?Action=post_message">发表留言</a>^^<a href="?Action=show_message">显示留言</a></div><?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']);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']);break;default:$HawkXML->show_message();break;}?></body>
</html>

PHP+XML留言板相关推荐

  1. php xml 留言板,php xml留言板 xml存储数据的简单例子

    类文件:_class.xmldb.inc.php 复制代码代码如下: classxmldbextendsDOMDocument{ var$xmldb; publicfunction__construc ...

  2. php留言板源码免mysql_PHPMYSQL留言板源码(终极完整版).doc

    PHPMYSQL留言板源码(终极完整版).doc 数据库结构?:(库名:lyb) 表一: admin? 字段: id(int11?) name(varch?vr) passw?ord(varch?vr ...

  3. create-react-app留言板

    create-react-app留言板 搭建环境 创建package.json文件 npm init -y 安装create-react-app npm install -g create-react ...

  4. 编写Java 制作留言板_JSP+Servlet+JavaBean制作简单留言板

    [实例简介] 本资源是一个简易留言板的代码,主要用了JSP+Servlet+JavaBean传统方式,实现登录.注册与留言的功能,内容仅供学习参考. 下载的文件肯定不能直接运行,需要自己配好服务器与环 ...

  5. ajax回复留言,Ajax 留言板模拟

    这一节我们利用 Ajax 制作一个留言板模拟,之所以叫模拟,是由于没有将留言内容存入数据库,而只是假像地处理,因为这里着重讨论 Ajax,暂时就不涉及数据库操作. 这里我们模拟了留言失败的情况,每次提 ...

  6. asp.net ajax 源码,asp.net+jquery+ajax简单留言板 v1.2

    asp.netC#+jquery1.4.1 +ajax留言板程序说明 采用asp.net C#+ jquery1.4.1 +ajax的实现 主要用aspx文件请求 还可以用ashx处理 ajax返回类 ...

  7. java 留言板源码_jsp+servlet+javabean实现简易留言板(包含数据库文件)

    [实例简介] jsp+servlet+javabean实现简易留言板(包含数据库文件) 简单体验MVC设计模式 jsp:视图,与用户打交道:servlet:控制器,请求分配转发,联系视图层与模型层:j ...

  8. java留言系统_JAVA留言板系统.doc

    留言板系统 1.1留言板系统功能简介 1.留言板系统的主要功能: @注册模块:用户填写相应信息,进行注册,只有注册后,用户才有访问留言板的权利 @登录模块:用户的身份验证功能 @登录信息模块:用户查看 ...

  9. android中留言板功能,Android -- 留言板的简单实现

    [实例简介] Android -- 留言板的简单实现,适用于初学者参考demo,交流学习 [实例截图] [核心代码] Android--留言板的简单实现 └── Android -- 留言板的简单实现 ...

最新文章

  1. extract ,eval的用法
  2. 每日一记--2014.9.22
  3. 移动web开发ajax缓存操作
  4. php对称字符串,PHP实现简单的对称加密和解密方法 - str_split
  5. python列表的嵌套_Python中关于列表嵌套列表的处理
  6. python之闭包,装饰器
  7. wpsppt如何虚化图片_PPT模仿之路——图片以及笔画的虚化
  8. Linux中的cron计划任务配置详解
  9. SqlServerDBHelper类
  10. 如何给女朋友解释什么是3PC?
  11. 经典兔子问题python视频_Python练习题 007:兔子生兔子
  12. C++语言基础 —— STL —— 容器与迭代器
  13. linux中date使用方法,linux命令详解date使用方法(计算母亲节和父亲节日期脚本示例)...
  14. 关于 Android 8.0 gts 的 widevine 类问题 GtsMediaTestCases / GtsExoPlayerTestCases
  15. win 10 添加网络位置提示【输入的文件夹似乎无效,请选择另一个】解决办法
  16. Dev-C++ 一直提示源文件未编译,原因及解决办法
  17. 《调研报告》:黑灰产哄抢消费券的两种方式
  18. python自动化系列之python操作pptx文件
  19. 十二时辰与时间对照表,十二经络时辰表
  20. 【Beta阶段项目展示】Time Shaft·时间轴

热门文章

  1. R语言生成螺旋形(spirals)仿真数据实战:螺旋线型线性不可分数据集、螺旋线型不可分数据集可视化、为散点图中的每个数据点添加类标签信息
  2. MySQL 两种存储引擎:MyISAM与InnoDB对比及理解
  3. 深度学习时间序列预测:LSTM算法构建时间序列单变量模型预测大气压( air pressure)+代码实战
  4. cufflinks基于dataframe数据绘制股票数据:直方图、时序图
  5. R使用dplyr包对变量、特征进行标准化(standardize)缩放操作
  6. R语言绘图设备dev
  7. C语言数组栈怎么实现删除,C语言静态数组实现栈操作
  8. 堆,栈,内存泄露,内存溢出介绍
  9. 改变jupyter notebook的主题背景颜色
  10. 【tensorflow】OP_REQUIRES failed at variable_ops.cc:104 Already exists: Resource