首  页
站长信箱
868搜索
网站登录
免费计数器
免费留言本
IP来源查询
网站技术教程
网站流量统计
文章探索:   分类:    关键字:  
    什么?你还在找兼职?上兼客吧,现在兼客吧平台太火了,知名度和诚信度也很高,注册就送0.5元现金,满3元就能提现,马上到账了!最低3元就能提现,大家可以注册下试试!注册地址:http://www.jiankeba.com/computeryc1688
  + 栏目导航
  + 相关文章
用ASP生成XML数据文档(RSS订阅..
asp添加xml节点问题
Asp.net+Xml实现无数据库论坛(..
Asp.net+Xml实现无数据库论坛(..
Asp.net+Xml实现无数据库论坛(..
js添加、修改、删除xml节点例子
ASP.NET查找XML节点的几个方法
使用ASP添加xml节点功能
使用asp修改xml中的节点
ASP历遍XML节点与字节点之简单..
ASP向xml文件中的添加节点
ASP遍历XML节点
asp修改xml节点属性
小白ajax定时更新xml数据练习
Ajax核心:XMLHTTP组件相关技术..
远程获取内容,并将内容存在本..
xmlhttp组件获取远程文件并筛选..
XMLHTTP对象及其方法
把HTML表单提交的数据转化成XML..
利用XMLHTTP无刷新添加数据之Po..
Js+Xml:不刷新页面获取对应网址..
xml(元标记语言)学习基础一
Java语言编程中更新XML文档的常..
简析JAVA中的XML编程
XML及其技术指南
XML教程(2)--XML元素与XML属性..
XML教程(1)--严格的语法
从XML到Java代码的数据绑定之一
神奇的XML--突破CGI权限的约束
基于XML的数据库总体分析

技术教程 -> XML教程 ->  
Asp.net+Xml实现无数据库论坛(二)
来源:http://tech.163.com   人气:2765   录入时间:2008/12/29


    第二节:引路入门、建立基地(XML数据库结构)
   
   明确做什么样的论坛系统,才能理起思路,这里我们假设开发一简单论坛,其功能功用均效仿常见论坛,我们只要求一个栏目
   XML数据库的实现{
   会员资料存储(在主目录新建一文件,名为user.xml,该user.xml文件即作为存储所有会员资料的文件,本例结构可是如下形式)[
   <?xml version="1.0" encoding="gb2312"?>
   <alluser>
   <fyw name="风云舞" pass="1234" sex="男士" age="20" img="http://www.lshdic.com/bbs/image/user40.jpg" fatie="20" exp="243" homepage="http://www.lshdic.com" email="lshdic@sina.com" oicq="21152530" qianming="签名档内容" address="山东临沂"/>
   <cike name="孤独刺客" pass="123" sex="男士" age="20" img="man2.gif" fatie="0" exp="20" homepage="" email="gdcike@163.com" oicq="" qianming="风云他是猪!吭大爷做关税区的斑竹!" address="山东临沂"/>
   <plgirl name="千千纯子" pass="123" sex="女士" age="20" img="woman1.gif" fatie="0" exp="0" homepage="" email="" oicq="" qianming="" address=""/>
   </alluser>
   ]
   这是本例所采用的XML存储结构,不难看出一个标签即包含了一个会员的所有信息,标签名即是“用户帐号”,其中name=昵称、pass=密码、sex=性别……,其中“用户帐号”必须保证是唯一的,而且必须限制为英文字母或英文字母后边带数字,关于XML的文件结构及数据一定要求符合XML文档规范及命名规范,若此后在程序中用户所提交数据处理不托,或可导致资料泄露,或该user.xml即宣告报废,必须手工查找更正,否则无法正常存取
   
   论坛帖子资料存储(在主目录新建一文件夹,名为data,该data文件夹今后即保存所有会员发表的帖子,其中帖子的文件名是随机或有规律的如1.xml,2.xml,3.xml,这些文件存储了帖子的所有数据包括主题、回复,当然这些文件的建立、修改、起名、删除等都是在以后用程序实现的,至于新文件起名的程序部分要保证其名称与以有文件互不冲突即可,文件名可以是无任何规律的,毕竟今后我们不以文件名来实现排序,其单个XML文件内容结构如下)[
   1.xml:
   <?xml version="1.0" encoding="gb2312"?>
   <?xml-stylesheet type='text/xsl' href='../file.aspx?dex=1.xml'?>
   <document>
   <record>
   <anthor>fyw</anthor>
   <title>帖子标题</title>
   <date>2003-12-6 3:27:18</date>
   <gengxindate>2003-12-6 3:27:18</gengxindate>
   <body>帖子内容
   
   <hr>内容是以过滤HTML等于XML文档规范相冲突的字符以后的合法内容,标题也需要过滤
   </body>
   </record>
   </document>
   
   2.xml:
   <?xml version="1.0" encoding="gb2312"?>
   <?xml-stylesheet type='text/xsl' href='../file.aspx?dex=7908604.xml'?>
   <document>
   <record>
   <anthor>fyw</anthor>
   <title>帖子标题</title>
   <date>2003-12-6 3:54:59</date>
   <gengxindate>2003-12-6 3:54:59</gengxindate>
   <body>帖子内容</body>
   <reply>
   <anthor>cike</anthor>
   <date>2003-12-6 5:53:38</date>
   <gengxindate>2003-12-6 5:53:38</gengxindate>
   <body>1楼回复的内容</body>
   </reply>
   <reply>
   <anthor>plgirl</anthor>
   <date>2003-12-7 5:53:38</date>
   <gengxindate>2003-12-7 5:53:38</gengxindate>
   <body>2楼回复的内容</body>
   </reply>
   </record>
   </document>
   ]
   这是本例论坛帖子的XML存储结构,现在我们建立起了会员资料存储文件(user.xml)以及论坛帖子存放地点和存放结构(data\*.xml),你是否以有所启发?用程序在这两者基石上搭桥引线是否真的能够实现复杂的论坛系统哪?答案是肯定的,只要能通过程序在后台操纵这两个存储基地,加以友好的界面,即可小试牛刀
   }
   第三节:诸葛布阵、将士磨刀
   
   XML数据存储结构以完成,下面一一列出完成论坛大业所需要的材料
   项目包括{
   通用函数页
   (建立或一或二这种通用函数页或DLL或者是用户控件,将常用的程序过程、变量、函数放入其中,此后使用可大大节省时间避免重复劳动,这在下一章将有所提及)
   
   游客与会员的区分
   (即是一个session,本例为session("who")值是否存在的判断,如存在即判断是会员,如不存在值即为游客,我们本例不使用cookies存储用户数据,游客权限自然是只能浏览帖子,不能发表或回复帖子,而会员则可以)
   
   会员注册
   (包含各种表单的页面,目的是完成向user.xml添加一新的标签节点(等同添加一新的会员数据),要处理好用户所提交的数据,方法要用到防止跨站提交、会员帐号(即XML节点头标签)要用正则表达式限制为类似程序变量的语法要求或干脆只允许使用英文字母、XML节点属性至少要过滤<>&"'以及回车符号、防止申请的会员帐号以存在user.xml、所有数据英文符号均转换为小写格式即不区分大小写包括用户帐号和密码)
   
   会员登陆
   (包含用户帐号输入框、密码输入框和一个登陆按钮,提交后利用XMLDOM搜索user.xml是否有匹配的用户帐号(要特别注意过滤用户提交的数据,尤其是*号等,这在XMLDOM的搜索中被认为是通配符),如user.xml存有该帐号,即将一个session,本例为session("who"),设值为该用户帐号,游客身份即成为会员身份)
   
   会员资料修改
   (禁止游客浏览本页,样式保持与会员注册页的表单基本一样(但不包含用户帐号名称修改的功能),只不过所有表单的值均是预读了user.xml中匹配session("who")该会员的信息,用户修改过后,单击完成修改按钮,此时后台程序修改user.xml中该会员对应的节点数据即可)
   
   会员资料显示
   (只读页面,读取网址参数中对应的会员帐号,显示会员所有无需保密的信息)
   
   一个论坛栏目主页
   (即帖子列表,根据URL页码参数分页,显示data目录中对应页码的所有帖子信息,排序自然根据文件的修改日期,最新更新的最靠顶,这是开发本论坛中最难的一个项目之一,要谨慎处理,最好实现点对点(即1-10,30-40,100-110)形式分页的抽取data目录中的文件,可以保证最优质的运行速度)
   
   帖子显示页
   (本例的帖子显示是直接在浏览器访问XML文件,即http://xxx.xxx.xxx/xxx.xml的URL形式访问,由于仅仅使用静态XSL控制XML文件的二层输出形式是远远不够的,所以我们采取的显示结构是三层,其顺序为(1:打开XML文件后查找xml-stylesheet节点的href所指定的XSL文件---2:由于目标文件类型是aspx,我们在目标aspx中根据url参数访问参考对应的XML文件数据,控制数据流输出格式为xsl,丛中很好的整理出理想的xsl样式表,即起到了中间层的关键作用---3:由于aspx输出的xsl是我们在后台整理过的,其高度的智能、合理,即可以配合XML数据输出结构复杂的帖子显示页),期间中间层的开发难度最大,是本论坛系统中最难的一个步骤,简单的地方是XMLDOM分析抽取目标XML中的节点数据,实现显示主题、显示帖子作者、显示帖子内容、显示帖子所有回复,但最难点,本人在着手开发时,就无法解决帖子回复的分页,以及aspx服务器端控件和xsl文档规范相互冲突,可能是本人水平有限,或也是本人原创的这种3层输出存在本质的缺陷,所谓XML实现数据库容易,但通过XSL实现超越HTML的理想输出难)
   
   发表新贴
   (禁止游客发表,该项目即是一个输入主题的输入框+内容输入框+提交按钮,可以绑定在栏目帖子列表页下方或新建一个专页,用户提交发表后要用server.HTMLEncode()过滤用户所提交的数据,而后用程序创建XML文件、给XML文件起名、整理XML文件的文件格式如第二节所写的格式、向节点内写入过滤后的数据、修改user.xml对应的发贴会员的节点实现积分+2和发贴数+1,用cookies限制7秒内禁止多次提交灌水)
   
   回复新贴
   (禁止游客回复,该页可绑定帖子显示页下方或新建一个专业,提供一内容输入框+提交按钮,提交后如发表新贴过程类同,要进行数据过滤,而后在对应的帖子存储XML文件中插入一reply节点,在该节点中建立用于存储回复作者名称、回复内容、回复日期、回复更新日期等节点,修改user.xml对应的发贴会员的节点实现积分+1和发贴数+1,用cookies限制7秒内禁止多次提交灌水)
   
   版主管理功能
   (要实现密码验证,判断禁止游客及会员使用,可选的后台管理功能有奖励会员积分、减少会员积分、删除会员、修改任何帖子、删除任何帖子,甚至可以考虑诸多封IP、置顶、锁定、封版主等等高级功能)
   }



| 网站转让 | 站长信箱 | 网站登录 | 技术教程 | 免费计数器 | 免费留言本 | 868流量统计 | 好帮手网站营销 |
地址:广东省阳江市  联系电话:13725641179 杨先生
Copyright 2004-2019 868资源网- 版权所有    粤ICP备05007330号