网页编写代码(读取数据库和做留言簿)
- 格式:doc
- 大小:35.00 KB
- 文档页数:6
基本格式<html><head><title></title></head><body></body></html><!-- --> 添加注释<html>开始标记符,可以省略<head> </head>首部标记<tItle> </tItle> 标题标记符(唯一)<style type=contenttype medIa=mediadesctItle=text ></style><scrIpt ></scrIpt>关于脚本的定义包含属性有type=contenttype 编程语言的内容类型language=cdata 编程语言名src=url 外部程序位置charset=charset 外部程序的字符编码defer 设置此布尔属性时,表示告知浏览器脚本并不产生任何文档内容(如,在javascript中没有"document.write"语句),从而使浏览器可以继续解释html 文件的内容并进行显示<noscrIpt> </noscrIpt> 浏览器不支持客户端程序时显示里面的内容<basefont>基本字体的大小、颜色和"字体"(过时)包含属性有sIze=n 更改网页默认的字号属性,默认为3,n=1~7color=color 指定默认字体颜色face 指定默认字体id=id 唯一的id<base> 定义文档的默认url基准和默认目标框架(唯一)<a href="/project/data/"> 指定默认url 基准target="main" 指定默认的目标框架,单击连接时在默认框架显示<meta meta>标记符,包含了网页的元数据信息,如文档关键字、作者信息等包含属性有name=name 名字http-equIv=name http相应标题名content=cdata 相关数据<lInk>定义了文档的关联关系包含属性有rel=linktypes 到链接的关系rev=linktypes 来自链接的关系href=url 链接资源的urltype=contenttype 链接的内容类型target=frametarget 显示链接的目标框架medIa=mediadesc 链接的媒体hreflang=languagecode链接资源的语言charset=charset 链接资源的字符编码<body >正文标记符(开始标记符和结束标记符都可以省略)包含属性有bgcolor="#rrggbb" 背景颜色background="Image/image.gif" 背景图案teXt 设置正文的颜色lInk 设置未被访问的连接的颜色vlInk 设置已被访问过的连接的颜色alInk 设置活动连接(即当前选定的连接)的颜色onload=script 文档加载时执行脚本的事件onunload=script 文档退出时执行脚本的事件物理字符样式:<b> </b> 粗体<bIg> </bIg> 大字体<I> </I> 斜体<s> </s> 删除线<small> </small> 小字体<strIke> </strIke> 删除线<sub> </sub> 下标<sup> </sup> 上标<tt> </tt> 固定宽度字体<u> </u> 下划线<font></font> 标记符控制字符样式sIze=n 字号属性,用于控制文字大小,其值越大,显示的字体越大,n值=1~7,默认为3(使用<basefont sIze=n>可更改默认的字号属性),可用加减号来指定相对字号color="#rrggbb" 颜色属性:用于控制文字颜色,可使用颜色名称或十六进制指定颜色, 其中rr,gg,bb分别表示红,绿,蓝成分的两位十六进制值,ff表示包含满亮度的该种颜色;b0表示包含75%;80表示50%;40表示25%;00表示不含该颜色face="宋体,黑体,楷体" 字体样式:即"字体",浏览器优先使用第一种字体,若系统中没有则使用第二种,依次类推,如果找不到匹配字体,浏览器将使用默认字体逻辑字符样式<hn> </hn> 标题样式:n=1~6,<h1></h1>表示最大的标题,<h6></h6>表示最小的标题,通常只使用前三级标题。
一、安装与调试常听朋友感叹ASP程序难学不易懂,不过我起初学习这门技术的时候也有过这样的感悟。
从今天开始,我将以我学ASP的经验来做一个简单的ASP留言本,这个留言本用了Access数据库,所以务必请大家要跟我一起做的朋友都安装好Office软件,相信各位自己的电脑上都有了。
好了,开始。
创建ASP的运行环境(安装IIS)IIS(Internet Information Service)是构建ASP站点所必须的,所以,我们应该先确认自己的电脑已安装了IIS信息服务,如果没有安装好的话,请按以下步骤:1、打开“控制面板”2、双击“添加/删除程序”3、单击“添加/删除Windows组件”,打开添加/删除Windows组件对话框:3、从下拉的列表中选择“Internet 信息服务(IIS)”单击“下一步”:4、出现组件安装进度窗口,如弹出需要安装盘的话,放入Windows2000安装盘,按提示操作即可。
直至最后安装完毕。
二、设计数据库ASP程序本身并不能储存数据,众所周知,留言本有以下信息需要保存:留言者姓名、联系方式、留言内容等等。
因为ASP并不能储存数据,所以数据库在这种环境之下就产生了。
数据库的种类也很多,针对不同的程序也有适用于它的数据库,比如Access 和Ms SQL就比较适用ASP和程序,至于其它的数据库和程序,就不属于本文所讨论的问题了,有兴趣的朋友可以查看其它一些资料。
那么既然Access和MS SQL都适用ASP,那么具体又如何来选择呢?我们可以打一个比方:比如钉一枚小钉子,聪明的人一定不会用一个大的棒槌,而是选择小的铁锤,虽然用大的棒槌也一样的可以把钉子钉进去,可是没有人愿意这样做。
数据库也一样:Access比较适用小型的应用,而MS SQL则适用于大中型的数据库应用,所以要做一个留言本,理所当然是选择Access更好一些,但是如果你决心使用MS,没有人会极力阻止你。
好了,废话少说,切入正题,下面开始创建数据库。
一个简单的留言板代码<!DOCTYPE html><html><head><meta charset='utf-8'></head><body><h1>留言板</h1><!--以下为读取留言要用的 PHP 代码 --><?php// 连接数据库$conn = mysqli_connect('ip地址', '用户名', '密码', '数据库名')or die('连接数据库失败:' . mysqli_error());// 设置数据库字符集mysqli_query($conn, 'SET NAMES UTF8');// 执行查询$sql = 'SELECT * FROM message ORDER BY created_at ASC'; // 查询语句$result = mysqli_query($conn, $sql) or die('查询数据失败:' . mysqli_error($conn));// 输出数据if (mysqli_num_rows($result) > 0) {// 输出每行数据while ($row = mysqli_fetch_assoc($result)) {echo '<div>';echo '<h3>' . $row['name'] . ' 发表于 ' . $row['created_at'] . '</h3>';echo '<p>' . $row['content'] . '</p >';echo '</div>';}} else {echo '暂无留言!';}// 关闭数据库mysqli_close($conn);><!-- 以上为读取留言结束 --><!-- 以下为发表留言 --><form action="index.php" method="POST"><div><label for="name">昵称:</label><input type="text" name="name"></div><div><label for="content">内容:</label> <textarea name="content"></textarea> </div><input type="submit" value="提交"></form><!-- 以上为发表留言结束 --></body></html>。
留言板代码大全简介留言板是一个常见的网站组件,允许用户在网站上发表自己的评论、建议或者问题。
在本文档中,我们将介绍留言板的实现方法,并提供一些常见的代码示例。
环境准备在进行留言板开发之前,我们需要准备一些必要的环境和工具:1.服务器环境:我们需要一个能够运行服务器脚本的环境,比如搭建本地的开发服务器或者使用云服务器。
2.编程语言:留言板的开发可以使用多种编程语言实现,比如 PHP、Python 等。
3.数据库:留言板需要使用数据库来存储用户的留言信息,所以我们需要安装并配置一个适合的数据库。
实现步骤下面是一个通用的留言板的实现步骤:1.创建数据库表:留言板需要使用数据库来存储用户留言的信息,我们需要创建一个适合的数据表来存储这些信息。
表的字段可以包括用户ID、留言内容、留言时间等。
2.创建前端界面:我们需要创建一个前端界面,该界面用于展示留言板以及接收用户的留言输入。
可以使用HTML、CSS 和 JavaScript 来构建这个前端界面。
3.处理用户留言:当用户在前端界面中提交留言后,我们需要编写后端代码来处理这些留言。
后端代码通常使用服务器脚本或者后端框架来实现。
具体操作包括接收留言,将留言信息存储到数据库中,然后返回给用户留言保存成功的提示。
4.显示留言列表:留言板需要将存储在数据库中的留言信息展示给用户,我们需要编写后端代码来从数据库检索留言信息,然后返回给前端界面进行展示。
以下是一个使用 PHP 和 MySQL 数据库实现的留言板的示例代码:```php <?php// 连接数据库 $conn = mysqli_connect(。
⼀个在MVC框架下开发的留⾔本⽰例(1)刚刚学了⼏天的MVC框架⾃⼰也试着做了⼀个留⾔本的⽰例⼩程序,初步的了解了⼀下MVC框架的功能。
通过这个⽰例了解了MVC框架中的⼏个有⽤的东西。
1、HandleErrorAttribute(MVC框架内置的页⾯错误处理Filter)这个内置的处理错误的功能很简单,只能在当页⾯出现错误的时候把错误信息收集起来,并显⽰友好的错误提⽰的View(需要在web.congfig 中配置是否启⽤友好错误提⽰的customErrors节点)。
在⽤ MVC 框架模板创建web应⽤程序时会⾃动⽣成⼀个\Shared\Error.aspx 的View。
但是这个默认的错误处理功能没有实现对错误⽇志的记录,所以我们可以通过继承HandleErrorAttribute,来实现⾃⼰的MyHandleError。
MyHandleError当然我们还可以近⼀部增强这⼀部分的处理功能,⽐如将错误信息格式化的存⼊到⼀个xml⽂件中或者数据库中,这样我们就可以实现更多对错误⽇志进⾏分析和处理的⽅法了。
2、IModelBinder(对复杂类型的内置模型绑定器接⼝)通过实现这个接⼝我可以在提交表单的时候⽤,这样的代码来接收我们提交过来的数据,如:public ActionResult UserSave(User objUser)这个接⼝就相当于实现了⼀个由表单数据到业务对象数据的⼀个转换。
这样可以使得Controller中的代码更简洁更清晰。
UserBinder要使⽤这个绑定器,我们就需要先注册它,关于如何注册和更详细的使⽤⽅法可以看的内容。
3、Html.DropDownList(⽤于⽣成select的辅助⽅法)该⽅法⼀个重要的参数就是SelectList,它相当于DropDownList的数据源。
我们可以指定这个DropDownList的value和text还可以指定他的当前选中项,如:定义⼀个SelectList我们在前台页⾯上就可以这样引⽤<%=Html.DropDownList("Page", this.PageArray)%>以上所有代码都是基于 MVC Beta版的,⽬前⽰例代码还不完善,没有权限判断上的内容,以后有⼼得后再继续完善。
教程连载1:PhpChina留言本实例在第一期中,我们来一步一步实现一个最基本的留言本。
留言信息包括留言者,留言内容,留言时间,留言者IP。
(本文假设你已对HTML以及PHP语法比较熟练了)第一步:设计数据库新建一个数据库,打开phpMyAdmin,新建一个数据库gb,下面整理选择utf8_general_ci,然后在数据库中建一个表message,字段数为5:utf8_general_ci。
每个字段的含义:id-- 留言的编号,类型为整数型,长度是10,属性选择为unsigned是表明这个字段是无符号字段,不会有负数,所以可以存取的范围会增加一倍(因为如果原来的范围是-9 到10,那么设置为unsigned后范围则变为0到19),额外设置为auto_increment,表明这个字段是自动增加的,我们不用管插入数据时它是啥值,它会自动在最大的id的基础上自动加1,其他设置为主键。
username -- 留言者的名字,类型为字符型(关于char与varchar的区别请查看MYSQL手册),长度为100(正常人用户名不可能超过100吧,其实应该尽量减少长度,提高性能,节约空间)content-- 即留言内容,类型为text(text和blob的唯一的区别在于text不区分大小写,而blob对字符的大小写),text类型可以存足够多的数据,足够存好几篇文章了,此类型不能设置长度,否则报错。
time -- 即发布留言的时间,类型为int,长度为10,保存的数据格式是UNIX时间戳(即用PHP函数time()得到的10位数字),而不存xxxx-xx-xx这样的格式,为何这样后面或解释。
ip -- 即留言者的IP,格式为xxx.xxx.xxx.xxx,总共15个字符,所以长度设置为15。
第二步:设计界面在这我们直接偷蓝色理想的BXNA的界面( )HTML和CSS的东西就不详细讲了,不然写10期也写不完这个留言本了 (在code文件夹中有一个html文件,是单独分离出来的)第三步:开始写程序咯先要想好程序的整体构架,代码执行的流程等。
ASP最简单的留言本一、建立文件!最简单的论坛也要有几个必要的文件,就是:1、数据库,用来储存发表的帖子!-------命名为:bbs.mdb2、有数据库就必须连接数据库,该文件用来连接数据库:----命名为:conn.asp3、发表帖子的文件----命名为:say.asp4、保存发表帖子内容的文件-----命名为:save.asp5、显示帖子标题的文件------命名为:index.asp6、显示帖子内容的文件,即点击标题后所进入的页面-----命名为:show.asp建立文件是可以先建立文本文档,他的格式为"文件名.txt",我们只需把它改为"文件名.asp"注:一定要用双引号,不然建立出来的文件还说txt 后缀的二、各文件的主要内容1、bbs.mdb打开这个数据库,就是Access建立一个表,命名为bbs该表中有几个字段:id(自动给帖子编号),他的数据类型设为“自动编号”name(用来储存发表的作者),数据类型为“文本”title(用来储存帖子的主题),数据类型为“文本”body(用来储存帖子的内容),数据类型为“备注”2、conn.asp源代码为:<%Server.scriptTimeout="10"connstr="DBQ="+server.mappath("bbs.mdb")+";D efaultDir=;DRIVER={Microsoft Access Driver (*.mdb)};"setconn=Server.CreateObject("ADODB.connection") conn.open connstr%>这个文件也没有什么好说的,就是建立和数据库文件的连接,"bbs.mdb"就是我们刚才建立的数据库文件3、say.asp源代码为:<form method="POST" action="save.asp"><p>大名:<input type="text" name="name" size="20"></p><p>标题:<input type="text" name="title" size="91"></p><p>内容:</p><p><textarea rows="11" name="body" cols="97"></textarea></p><p> </p><p><input type="submit" value="提交" name="B1"><input type="reset" value="重置" name="B2"></p></form>大家应该看得懂的,这个根本就是html语法,对的,根本就是,这个只是发表的界面不过要注意这一句<form method="POST" action="save.asp">,他把用户所填的内容发送至save.asp这个文件,下面就看save.asp这个文件吧!4、save.asp源代码:<!--#include file="conn.asp"--><%name=Replace(Request.Form("name"),"'","''" )title=Replace(Request.Form("title"),"'","''" )body=Replace(Request.Form("body"),"'","''") %><%if name="" or title="" or body="" then%> 请<a href="****:history.go(-1)">后退</a>填写完整资料,你才能发表帖子!<%else%><%set savebbs=conn.execute("insert into bbs(name,title,body)values('"&name&"','"&title&"','"&body&"')")%>发表成功!<a href="index.asp">查看帖子</a> <%end ifset savebbs=nothing%>第一句:<!--#include file="conn.asp"-->,意思是插入conn.asp文件,即与数据库进行连接!asp语句必须用<% %>这个格式包含起来,而插入文件的语句就不用,接下来几句:name=Replace(Request.Form("name"),"'","''") title=Replace(Request.Form("title"),"'","''" )body=Replace(Request.Form("body"),"'","''") “Replace(Request.Form("name"),"'","''")”意思是接收表单中名为name的文本框发来的数据,而“name=Replace(Request.Form("name"),"'","''" )”则是把发来的数据储存在name变量中,如果你这样:“abc123=Replace(Request.Form("name"),"'","' '")”就是把表单中名为name的文本框发来的数据储存在abc123变量中接着:if name="" or title="" or body="" then 判断name、title和body变量中是否没有填写内容,即为"",如果这样,就执行这一语句:“请<a href="****:history.go(-1)">后退</a>填写完整资料,你才能发表帖子!”该语句属于html语法,大家都看得懂的!"<%else%>"就是说“当if……then不成立(即是说所有内容都已经填写)”,就执行语句:“<%set savebbs=conn.execute("insert into bbs(name,title,body)values('"&name&"','"&title&"','"&body&"')")% >发表成功!<a href="index.asp">查看帖子</a>”"set save=conn.execute"属于固定的语句,不过savebbs可以自己修改,"="后面的就难解释了:insert into bbs(name,title,body)意思是向名为bbs的表(在建立数据库时已经建立的表)中的name,title,body字段插入,插入什么呢?看接下的values('"&name&"','"&title&"','"&body&"')") values是“值”的意思就是插入向量name,title,body,向量用格式'"&name&"'表示最后:end if就是结束if……thenset savebbs=nothing可以说是关闭掉:set savebbs=conn.execute("insert into bbs(name,title,body)values('"&name&"','"&title&"','"&body&"')")5、index.asp源代码:<!--#include file="conn.asp"--><b><a href="say.asp">发表帖子</a></b><br><br> <div align="center"><center><table border="0" cellpadding="0" cellspacing="0" style="border-collapse: collapse; " bordercolor="#000000" width="100%" height="26"><tr><td width="17%"><b>作者</b></td><td width="83%"><b>主题</b></td></tr></table></center></div><hr size="1"><%i=1set showbbs=conn.execute("select*from bbs order by id desc")do while not showbbs.eof%><div align="center"><center><table border="0" cellpadding="0" cellspacing="0" style="border-collapse: collapse; " bordercolor="#000000" width="100%" height="20"><tr><td width="17%"><%=showbbs("name")%> </td> <td width="83%"><ahref="show.asp?id=<%=showbbs("id")%>"><%=sho wbbs("title")%></a></td></tr></table></center></div><hr size="1"><%i=i+1if i>50 then exit doshowbbs.movenextLoopshowbbs.Closeset showbbs=nothing%>主要讲精华部分:set showbbs=conn.execute("select*from bbs order by id desc")意思是:向数据库中的bbs数据表查询数据,并以id排顺序,还有这么一句:<%=showbbs("name")%>就是显示数据表中的name字段的数据,这里的showbbs就是set showbbs=……中的showbbs代码中的i=1和i=i+1if i>50 then exit do showbbs.movenextLoopshowbbs.Closeset showbbs=nothing这几句属于循环语句,这里就不理他,理解了也不太好用,因为他只显示50张贴子!if i>50 then exit do中的50可以修改但我们做论坛必须把帖子分页,又因为分页这个语句太复杂,我想就不讲了,等这一个弄懂了才来弄还有一句很有用的:<ahref="show.asp?id=<%=showbbs("id")%>"><%=sho wbbs("title")%></a>里面的超连接:show.asp?id=<%=showbbs("id")%>,注意:这里的超连接把帖子的id包含了,等一下在show.asp文件中就有用了6、show.asp源代码:<!--#include file="conn.asp"--><%id=request.querystring("id")%><%set show=conn.execute("select*from bbs where id="&id&"")%><a href="index.asp"><b>回到首页</b></a><br><b><a href="say.asp">发表帖子</a></b><br><hr size="1"><table border="1" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" width="100%" height="180"><tr><td width="21%" height="22"><b>作者:</b><%=show("name")%></td><td width="79%" height="22"><b>主题:</b><%=show("title")%></td></tr><tr><td width="100%" colspan="2" height="158" valign="top"><b><br>内容:</b><%=show("body")%></td></tr></table><%set show=nothing%>劲语句---精华语句:id=request.querystring("id")在讲解index.asp文件的后面已经说到:show.asp?id=<%=showbbs("id")这一句,id=request.querystring("id")就是把地址栏中的id的值读取下来,因为index.asp文件中的超连接点击后,地址栏就为http://…………/show.asp?id=数字,所以show.asp使用id=request.querystring("id")语句把数字读取下来于是接着使用:set show=conn.execute("select*from bbs where id="&id&"")向数据表查询id为这时读取下来的数字的帖子,即where id="&id&"最后<%set show=nothing%>三、一个简单的论坛就这样完成了,挂在我们自己的ASP空间上去试试还有就是所有的文件在同一个目录中。
读取access数据库中表的内容2<%set cn=server.createobject("adodb.connection")cn.open"driver={Microsoft Access Driver (*.mdb)};dbq=d:\db1.mdb" set rs=cn.execute("select*from ljb")n=1response.write("<table border=2 color=blue>")response.write("<tr>")for i=0 to 3response.write("<td>"&rs(i).name&"</td>")nextresponse.write("</tr>")response.write("<tr>")do while not rs.eofif(n mod 2=0)thenresponse.write("<tr bgcolor=red>")elseresponse.write("<tr>")end ifn=n+1for i=0 to 3response.write("<td>"&rs(i)&"</td>")nextrs.movenextresponse.write("</tr>")loopresponse.write("</table>")%>聊天室3chat.asp:<%yhm=request("yhm")application("username")=yhmapplication.lockapplication("n")=application("n")+1application("usernz")=application("usernz")&"<br>"&yhmapplication.unlock%><html><frameset cols="30%,*"><frame src=S_var.asp name="f3"><frameset rows="*,20%"><frame src=message.asp name="f1"><frame src=input.htm name="f2"></frameset></frameset></html>global.asa:<script language=vbscript runat=server>sub application_onstartapplication("n")=0application("yhm")=""application("c")=""end sub</script>index.asp:<html>当前聊天室的人数为:<%response.write(application("n"))%><form action=chat.asp>用户名:<input type=text name=yhm><input type=submit value="进入"> </form></html>input.htm:<html><form action=message.asp target="f1" method=post><input type=radio name=clr value=red>红<input type=radio name=clr value=green>绿<input type=radio name=clr value=yellow>黄发言:<input type=text name=user><input type=submit value="提交"></form></html>message.asp:<meta http-equiv=refresh content="5;"><%x=request("user")clr=request("clr")if x<>empty thenapplication("c")=application("c")&application("username")&"说:" application("c")=application("c") &"<font color='"&clr&"'>"&x&"</font><br>"end ifxx=application("c")response.write(xx)%>S_var.asp:<%response.write("当前正在聊天的人数为:"&"<br>")response.write(application("n")&"<br>")response.write("当前正在聊天的成员有:"&"<br>")response.write(application("usernz"))response.write("<br>")<!--file name:S_var.asp-->server_name=request.servervariables("server_name")response.write("服务器或IP:"&server_name&"<br>")%>留言薄2<%user=request("user")main=request("main")hfdz=request("hfdz")lynr=request("lynr")set fs=server.createobject("scripting.filesystemobject")set file1=fs.opentextfile("d:\tt.txt",8,true)file1.writeline(now())file1.writeline(user)file1.writeline(main)file1.writeline(hfdz)file1.writeline(lynr)set fs=server.createobject("scripting.filesystemobject")set file1=fs.opentextfile("d:\tt.txt",1,false)response.write("<table border=3 bordercolor=blue>")response.write("<tr><td>日期</td><td>用户名</td><td>留言主题</td><td>回复地址</td><td>留言内容</td></tr>")do while not file1.atendofstreamresponse.write("<tr>")for i=1 to 5x=file1.readlineresponse.write("<td>"&x&"</td>")nextresponse.write("</tr>")loopresponse.write("</table>")do while not file1.atendofstreamaline=file1.readlineresponse.write aline&"<br>"loopfile1.closeset file1=nothingset fs=nothing%><html><body ><center><table><form action=show.asp><tr ><td >日期:</td><td><%response.write now()%> </td></tr><tr><td>用户名:</td><td><input type=text size=8 name=user></td> </tr><tr><td>留言主题:</td><td><select name=main><option>健康<option>留学<option>社会公益</select></td></tr><tr><td>回复地址:</td><td><input type-text size=20 name=hfdz></td> </tr><tr><td>留言内容:</td><td><textarea rows=5 cols=60 name=lynr></textarea></td></tr><tr><td colspan=2 align=center><input type=submit value=提交></td> </tr></form></table></center></body></html>。