如果在程序中,看到有错误的地方,请到我站点提出(http://www.rushanren.com),我将马上修改!
在开发动态网站的时候,总是发现很多朋友问我要新闻系统,我总是给他们指出到这down到那down,但是很快他们就不满意的回来q我了,告诉这个太大,那个太大,这个不会改,那个也不会改.在这里,我写这篇dwmx+access开发动态新闻教程,就是为了帮助那些朋友,授人以鱼总是不如授人以渔嘛!
不废话了,进入正题:
首先给大家看看这个新闻界面:
后台管理页面:
为了方便在这里给大家直观目录:
具有的功能为:
1.带后台管理员功能;
2.每条新闻具有发布时间和浏览次数;
3.能输入html代码,解决英文自动换行功能;
4.后台具有删除,编辑功能;
5.尽量精简代码,书写规范简单明了;
不足的地方:
1.由于时间关系和对初学者的考虑我没有做分页功能,如果大家想学习,我会在下次教程写出来!
2.没有写出首页调用代码,也是为初学者考虑
3.对后台添加新闻表单没有验证
开发工具:
dreamweavermx和access2000
好了,大家准备好了吧,我相信如果大家仔细看教程大约5小时就可以明白整个开发原理,很简单的:
先给大家说说开发步骤(或许不太规范,是按照本人习惯)
1.规划定义站点,建立各个功能模块文件。
好了,咱们开始吧,一个好的站点,应该先规划好站点文件的存放!
好了先看看文件目录:
下面解释一下:
目录:admin(用于存放后台管理程序文件)
文件:
xh_add.asp (后台管理页面)
xh_edit.asp (后台编辑页面)
xh_del.asp (后台删除页面)
xh_login.asp (后台管理登陆页面)
xh_cklogin.asp (后台管理验证页面)
xh_loginout.asp (后台管理退出页面)
xh_write.asp (新闻添加页面)
xh_save.asp (添加新闻验证页面)
xh_conn.asp (数据库连接文件)
目录:date (存放数据库文件)
目录:images (存放图片)
主目录下文件:
index.asp (新闻首页面)
conn.asp (数据库连接文件)
xh_look.asp (新闻查看页面)
xh_wei.asp (include连接结尾页面)
好了具体的规划就是这些,大家应该能明白一个步骤了吧!
也是一个思考过程,建站--建立各功能目录--建立数据库--建立后台文件--建立显示记录页面---完善程序例如编辑删除功能
这次咱们就来做这个新闻系统的数据库,放心很简单,几分钟就可以搞定!
首先开发access,设计表,如下图:
在这里,我详细介绍一下各个数据类型的功能
name用来存放新闻发布者的姓名(文本)
content 用来存放新闻内容(切记设置为备注,因为储存量多)
title 新闻标题(文本)
xhcount 存放每条记录点击数(数字型)
xhtime 每条新闻发布时间(时间类型)
大家能看明白嘛?第一句声明db为数据名。
然后打开ado,这个是规范写法,对于数据库移动位置可以在server.mappath改。
3.写后台管理登陆页面xh_login.asp和xh_cklogin.asp还有退出管理页面xh_loginout.asp
这次,准备讲解这个后台登陆的几个页面!
xh_login.asp这个页面主要一个表单递交页面,递交到xh_cklogin.asp
xh_cklogin.asp是个验证表单密码的页面。
好了,咱们来分析这段代码。
name=trim(request.form("username"))
pass=trim(request.form("password"))
主要是从login.asp提取2个表单的值
if name="" or pass="" then
response.write "<script language=javascript>alert('对不起未输入,请返回');_
history.back(-1)</script>"
end if
主要就是验证输入的用户名和密码是否是空值,这个参数是从登陆框传递过来的!记得我们给xh_login.asp的各个控件赋予了名称
if name="adminxh" and pass="adminxh" then
session("xianhe")="yes"
response.redirect "xh_add.asp"
else
response.write "<script language=javascript>alert('对不起密码输入错误');history.back_
(-1)</script>"
end if
主要就是验证密码是否正确了,如果正确进入下个页面,不正确返回登陆页面!在这里主要要提的是,这么一句代码。
session("xianhe")="yes"
xh_loginout.asp是个退出管理的跳转页面,只有2行代码
第一行是消除会话的值
第二行是跳转页面代码
4.写后台添加新闻页面xh_write.asp和xh_save.asp
这次我们来讲解新闻添加页面xh_write和保存新闻页面xh_save
首先我们来看看xh_write页面。
从上图我想大家应该可以看明白,就是给表单各个控件起名字,这样可以方便传递值!
这个表单递交的页面是xh_save.asp
咱们着重的讲一下的是xh_save.asp,来吧看看下图的代码。
<!--#include file="xh_conn.asp"-->
代码是调用数据库连接文件,不连接可就over了
<%
dim xianhe
xianhe=session("xianhe")
if xianhe="" then
response.redirect "xh_login.asp"
end if
%>
在这里大家还记得,在登陆后台的时候我传递给session("yes")这个会话一个值嘛?
它就是此时有用了,因为如果你登陆不成功,会话就是空值,添加页面就不会被直接url进去,想必大家可以听明白我的讲解吧!
好了讲解下面的代码,看上图:
这段代码主要就是声明一个记录集,然后起名rs,用记录集来添加新闻!
set rs=server.createobject("adodb.recordset")
sql="select * from erennew"
rs.open sql,db,1,3
sql语句对这个数据库的erennew表,然后rs.open sql,db,1,3是用赋值的参数来打开记录集,附带的1,3简单的来说就是可以让记录集添加数据
rs.addnew
rs("title")=trim(request.form("title"))
rs("name")=trim(request.form("name"))
rs("content")=server.htmlencode(request.form("content"))
rs("xhcount")=0
rs("xhtime")=now()
rs.update
这段就是添加记录的代码
rs.addnew添加
rs.update更新
其中的数据,大家可以明白就是通过递交表单的参数传递给了数据库!
rs.close
set rs=nothing
response.redirect "xh_add.asp"
关闭记录集,然后跳转页面。
5.写后台显示页面,功能带有编辑和删除xh_add.asp
好了,这节可以讲解xh_add.asp就是登陆后台的主页面
下图是后台效果。
然后咱们来看看代码。
这段代码看着是不是很熟悉啊,对了,在上节课我已经详细讲解了这个会话的功能了!
大家看看这个代码,就是用sql搜索了,erennew所有的记录,然后用execute执行了这个sql,关于输入各个数据,由于我没有界图,所以就用代码说明了啊!
<%do while not rs.eof%>
<tr>
<td align="center"><%=rs("id")%></td>
<td><a href=../xh_look.asp?id=<%=rs("id")%> target="_blank"><%=rs("title")%></a></td>
<td><%=rs("xhtime")%></td>
<td align="center"><a href="xh_edit.asp?id=<%=rs("id")%>">编辑</a></td>
<td align="center"><a href="xh_del.asp?id=<%=rs("id")%>">删除</a></td>
</tr>
<%
rs.movenext
loop
%>
大家看这段代码,难点就是编辑和删除的连接为:
xh_edit.asp?id=<%=rs("id")%>"就拿这个讲解吧!
意思就是传递到edit.asp这个页面一个参数,这个在edit.asp页面用querystring来探测这个参数,为什么这么说呢,主要就是为了分别到底是那个那个新闻需要被编辑或者删除,毕竟id是唯一的!
6.写后台编辑新闻页面xh_edit.asp和删除新闻页面xh_dll.asp
这节课主要讲新闻的2个重要部分也是难点部分,删除和编辑。
首先是xh_del.asp
大家仔细看看主要部分就是:
id=request.querystring("id")
delsql="delete * from erennew where id="&id
db.execute(delsql)
编辑部分原理上和删除是相同的。
上图就是代码部分:
if request.form("active")="" then
else
rs("title")=trim(request.form("title"))
rs("content")=server.htmlencode(request.form("content"))
rs("name")=trim(request.form("name"))
rs.update
response.redirect "xh_add.asp"
end if
if request.form("active")="" then
rs("title")=trim(request.form("title"))
rs("content")=server.htmlencode(request.form("content"))
rs("name")=trim(request.form("name"))
rs.update
response.redirect "xh_add.asp"
7.完成前台新闻页面index.asp和查看新闻页面xh_look.asp
好了这是最后一节来个简单的结尾。
这个在上节课已经讲解这个代码了,就是倒叙排列表中的记录!
在这个代码中,我列出来
</tr>
<%do while not rs.eof%>
<tr>
<td height="28" align="left"> <img src="/showimg.asp?p=/2006-3-29/95102gesapage.gif" _
width="12" height="14"> <a href=xh_look.asp?id=<%=rs("id")%> target_
="_blank"><%=rs("title")%></a> (<font color="#006699"><%=rs_
("xhtime")%>发表</font>)
<font color="#006699"> 浏览过<%=rs("xhcount")%>次</font></td>
</tr>
<%
rs.movenext
loop
%>
</table>
好了,下面是新闻页面xh_look.asp
这句主要是判断传递过来的参数是否为空,如果不是就赋值给参数,如果是空就赋值1。
自写一个参数,主要用来替换换行代码!
sql="select * from erennew where id="&id
rs.open sql,db,1,3
rs("xhcount")=rs("xhcount")+1
rs.update
上面代码大家可以看明白嘛?和以前差不多,就是累加浏览数,搜索到id值,然后更新数据库中的xhount的数值,大家明白了吧~!
演示
下载
Java Asp PHP .Net XML C/C++ CGI VB Jsp J2ee J2se J2me EJB Servlet Tomcat Resin Struts Weblogic Eclipse ANT GUI JMS Web servise IDEA Webphere Hibernate Spring Jboss Applet Swing Socket Javamail Perl Ajax P2P 安全 模式 框架 测试 开源 游戏
Windows XP Windows 2000 Windows 2003 Windows Me Windows 9.x Linux UNIX 注册表 操作系统 服务器 应用服务器