jsp留言板源代码三: 给jsp初学者.

作 者: precom (皮蛋) 2000.12.10
reply.jsp
====================================
<html><head>
<META content="text/html; charset=gb2312 " http-equiv=Content-Type>

<title>张家界电话黄页(网上114)</title></head>
<style type="text/css">
<!--
BODY { FONT-FAMILY: "宋体","Arial Narrow", "Times New Roman"; FONT-SI
ZE: 9pt }
.p1 { FONT-FAMILY: "宋体", "Arial Narrow", "Times New Roman"; FONT-SIZ
E: 12pt }
A:link { COLOR: #00793d; TEXT-DECORATION: none }
A:visited { TEXT-DECORATION: none }
A:hover { TEXT-DECORATION: underline}
TD { FONT-FAMILY: "宋体", "Arial Narrow", "Times New Roman"; FONT-SIZE
: 9pt }
.p2 { FONT-FAMILY: "宋体", "Arial Narrow", "Times New Roman"; FONT-SIZ
E: 9pt; LINE-HEIGHT: 150% }
.p3 { FONT-FAMILY: "宋体", "Arial Narrow", "Times New Roman"; FONT-SIZ
E: 9pt; LINE-HEIGHT: 120% }

-->
</style>

<body>

<%@ page contentType="text/html; charset=GB2312" %>
<%@ page language="java" import="java.sql.*" %>
<jsp:useBean id="testInq" scope="page" class="ymbean.opDb" />
<%
int pages=1;
int pagesize=10;
int count=0;
int totalpages=0;

String countsql="",inqsql="",updatesql="",lwhere="",insertsql="",st=
"";

String lw_title="",lw_author="",pagetitle="",author_http="",author_e
mail="",lw_ico="0",
lw_content="",lw_class1="";
String author_ip="",lw_time="",lw_class2="",lw_type="",zt_time="",zt
_author="";
int answer_num=0,click_num=0;
int inquire_item=1;
String inquire_itemt="",inquire_value="";
String lurlt="<a href=reply.jsp?";

lwhere=" where "; //只显示主贴

/*
Enumeration e = request.getParameterNames();
while (e.hasMoreElements()) {
String name = (String) e.nextElement();
*/
try{
//取显示的页页序数
pages = new Integer(request.getParameter("pages")).intValue();
} catch (Exception e) {}
try{
//取查询参数
lw_class1=new String(request.getParameter("lw_class1").getBytes
("ISO8859_1"));
lw_class2=new String(request.getParameter("lw_class2").getBytes
("ISO8859_1"));
zt_time=new String(request.getParameter("zt_time").getBytes("IS
O8859_1"));
zt_author=new String(request.getParameter("zt_author").getBytes
("ISO8859_1"));

lwhere=" where ( lw_class1='"+lw_class1+"' and lw_class2='"+lw_
class2+
"' and (lw_time='"+ zt_time+"' or zt_time='"+zt_time+
"') and (author_email='"+zt_author+"' or zt_author='"+zt
_author+"') ) ";
lurlt=lurlt+"lw_class1="+lw_class1+"&lw_class2="+lw_class2+"&zt
_time="+zt_time+
"&zt_author="+zt_author+"&";
//out.print(lwhere);
} catch (Exception e) { //out.print("error1: "+e+"<hr>");
}

try{
//取得参数 留言内容
lw_class1=new String(request.getParameter("lw_class1").getBytes("ISO
8859_1"));
lw_class2=new String(request.getParameter("lw_class2").getBytes("ISO
8859_1"));
lw_title=new String(request.getParameter("lw_title").getBytes("ISO88
59_1"));
lw_author=new String(request.getParameter("lw_author").getBytes("ISO
8859_1"));
pagetitle=new String(request.getParameter("pagetitle").getBytes("ISO
8859_1"));
author_http=new String(request.getParameter("author_http").getBytes(
"ISO8859_1"));
author_email=new String(request.getParameter("author_email").getByte
s("ISO8859_1"));
zt_time=new String(request.getParameter("zt_time").getBytes("ISO8859
_1"));
zt_author=new String(request.getParameter("zt_author").getBytes("ISO
8859_1"));
lw_ico=request.getParameter("gifface");

} catch (Exception e) {}

try{
lw_content=new String(request.getParameter("lw_content").getBytes("I
SO8859_1"));
String requestMethod=request.getMethod();
requestMethod=requestMethod.toUpperCase();
if(requestMethod.indexOf("POST")<0)
{ out.print("非法操作!");
return;
}

//形成其他数据项
author_ip=request.getRemoteAddr() ;
lw_time=testInq.getCurrentDate("yyyyMMddHHmmss");
lw_type=""+"c"; //从贴
answer_num=0;
click_num=0;
//================
st="','";
//保证留言所有数据项的长度在正常范围内
if(lw_title.length()>50) lw_title=lw_title.substring(0,50);
if(lw_author.length()>20) lw_author=lw_author.substring(0,20);
if(author_http.length()>40) author_http=author_http.substring(0,40);

if(author_email.length()>50) author_email=author_email.substring(0,4
0);
if(zt_author.length()>50) zt_author=zt_author.substring(0,40);
if(lw_content.length()>4000) lw_content=lw_content.substring(0,4000)

insertsql="insert into guestbook values('"+lw_title+st+lw_author+st+
author_http+st+
author_email+st+lw_ico+st+lw_time+"',"+answer_num+","+cli
ck_num+",'"+
author_ip+st+lw_class1+st+lw_class2+st+lw_type+st+zt_time
+st+zt_author+st+
lw_content+"')";
//out.print(insertsql);
//插入留言
try{
st=testInq.executeUpdate(insertsql);
if(st.indexOf("executeUpdate ok")<0)
out.print("msg="+st);
else
{
updatesql="update guestbook set answer_num=answer_num + 1 "+l
where;
//增加回复人数统计
try{
st=testInq.executeUpdate(updatesql);
if(st.indexOf("executeUpdate ok")<0)
out.print("msg="+st);
}catch (Exception e) { }
}
}catch (Exception e) { out.print("留言出错:"+e);}
} catch (Exception e) {}
%>

<%
//验证留言输入项合法性的javascript
String ljs=" <SCRIPT language=JavaScript> \n"+
" <!-- \n"+
" function ValidInput() \n"+
" {if(document.sign.lw_author.value==\"\") \n"+
" {alert(\"请填写您的大名。\"); \n"+
" document.sign.lw_author.focus(); \n"+
" return false;} \n"+
" if(document.sign.lw_title.value==\"\") \n"+
" {alert(\"请填写留言主题。\"); \n"+
" document.sign.lw_title.focus(); \n"+
" return false;} \n"+
" if (document.sign.author_email.value!=\"\") \n"+
" { if ((document.sign.author_email.value.indexOf(\"@\")<0)//(document
.sign.author_email.value.indexOf(\":\")!=-1)) \n"+
" {alert(\"您填写的EMail无效,请填写一个有效的Email!\"); \n"+
" document.sign.author_emaill.focus(); \n"+
" return false; \n"+
" } \n"+
" } \n"+
" return true; \n"+
" } \n"+
" function ValidSearch() \n"+
" { if(document.frmsearch.findstr.value==\"\") \n"+
" {alert(\"不能搜索空串!\"); \n"+
" document.frmsearch.findstr.focus(); \n"+
" return false;} \n"+
" } \n"+
" //--> \n"+
" </SCRIPT> ";
out.print(ljs);
%>

<%
//显示最近时间发表的一页留言
countsql="select count(lw_title) from guestbook "+lwhere;
inqsql ="select lw_title,lw_author,lw_time,lw_content,author_ip, "+
" author_email from guestbook "+lwhere+" order by lw_time desc
" ;
updatesql="update guestbook set click_num=click_num + 1 "+lwhere;

//增加浏览人数统计
try{
st=testInq.executeUpdate(updatesql);
if(st.indexOf("executeUpdate ok")<0)
out.print("msg="+st);
}catch (Exception e) { }

//out.print(inqsql);
if(pages>0)
{
try {
try{
ResultSet rcount=testInq.executeQuery(countsql);
if(rcount.next())
{
count = rcount.getInt(1);
}
rcount.close();
} catch (Exception el1) { out.println("count record error
: "+el1+"<br>" );
out.println(countsql);
}

totalpages=(int)(count/pagesize);
if(count>totalpages*pagesize) totalpages++;
st=""+
" <TABLE align=center border=0 cellPadding=0 cellSpacing=
0 width=\"95%\"> "+
" <TBODY> <TR> <TD align=middle bgColor=#97badd width=\"1
00%\"><FONT color=#ff0000>"+
" 共 "+totalpages+" 页,"+count+"
条. "+" 当前页: "+pages+
" </FONT></TD></TR></TBODY></TABLE><BR> ";

out.print(st);

//out.print(" 共 "+totalpages+" 页,"+
count+" 条. "+" 当前页: "+pages+"<br>");

st=" <center> "+
" <TABLE border=0 cellPadding=2 cellSpacing=1 width=\"95%\"> "+
" <TBODY> "+
" <TR> "+
" <TD align=middle bgColor=#6699cc width=\"55%\"><FONT "+
" color=#ffffff>留言主题</FONT></TD> "+
" <TD align=middle bgColor=#6699cc width=50><FONT "+
" color=#ffffff>回应数</FONT></TD> "+
" <TD align=middle bgColor=#6699cc width=40><FONT "+
" color=#ffffff>点击数</FONT></TD> "+
" <TD align=middle bgColor=#6699cc width=100><FONT "+
" color=#ffffff>作者名</FONT></TD> "+
" <TD align=middle bgColor=#6699cc width=140><FONT "+
" color=#ffffff>发表/回应时间</FONT></TD></TR> ";
//out.print(st);

if(count > 0 )
{
ResultSet rs = testInq.executeQuery(inqsql);
ResultSetMetaData metaData = rs.getMetaData();

int i;
// 跳过pages -1 页,使cursor指向pages并准备显示
for(i=1;i<=(pages - 1)*pagesize;i++) rs.next();
//显示第pages页开始
st= " <CENTER> <TABLE border=0 cellSpacing=1 width=\"95%\"
> <TBODY> ";
out.print(st);
String linestr="";
for(i=1;i<=pagesize;i++)
if(rs.next())
{
lw_title=rs.getString("lw_title");
lw_author=rs.getString("lw_author");
lw_time=rs.getString("lw_time");
lw_content=rs.getString("lw_content");
author_ip=rs.getString("author_ip");
author_email=rs.getString("author_email");
st=lw_time.substring(0,4)+"-"+lw_time.substring(4,6)+"-"
+lw_time.substring(6,8)+":"+
lw_time.substring(8,10)+":"+lw_time.substring(10,12)+
":"+lw_time.substring(12,14);
try{lw_content=testInq.addBr(testInq.removeComment(lw_co
ntent));} catch (Exception e) {}
linestr =""+
" <TR bgColor=#bed9fc> "+
" <TD align=left width=\"75%\"><FONT "+
" color=#0000cd>留言主题:</FONT><STRONG>"
+lw_title+"</STRONG></TD> "+
" <TD align=left width=\"25%\"><FONT color=
#0000cd>留言时间:</FONT>"+st+"</TD></TR> "+
" <TR bgColor=#e7f1fe> "+
" <TD colSpan=2 "+
" width=\"700\" wrap=yes><BR>"+lw_content+"
<BR><br></TD></TR> "+
" <TR bgColor=#bed9fc> "+
" <TD align=right colSpan=2 width=\"100%\">
<FONT "+
" color=#0000cd>作者:</FONT>"+lw_author+"
<FONT "+
" color=#0000cd>来源:</FONT>"+author_ip+"
</TD></TR>";
out.println(linestr);

}
rs.close();
//显示第pages页结束
st= " </TBODY></TABLE></CENTER></DIV><BR> "+

" <CENTER><A "+
" href=\"guestbook.jsp\"><FONT "+
" color=blue face=楷体_GB2312 size=4>返回留言板
首页</FONT></A></CENTER><BR> "+
" <HR align=center noShade SIZE=1 width=\"95%\"
> ";

out.print(st);

int iFirst=1,iLast=totalpages,iPre,iNext;
if(pages<=1) iPre=1;
else iPre=pages - 1;

if(pages>=totalpages) iNext=totalpages;
else iNext=pages + 1;

int n=(int)(count/pagesize);
if(n*pagesize<count) n++;
if(n>1)
{
//for(i=1;i<=n;i++) out.print("<a href=inquire.jsp?pages=
"+i+">"+i+" </a>");
//out.print("<HR align=center noShade SIZE=1 width=\"95%\
">");
String lt1="返回主页",lt2="第一页",lt3="上一页",lt4="下一
页",lt5="最后一页",lt6="";
lt6="<a href=http://www.zj.hn.cn>"+ lt1 + " </
a>"+
lurlt + "pages="+iFirst+"><FONT color=red>"+lt2+"&nbs
p; </a>"+
lurlt + "pages="+iPre+"><FONT color=red>"+lt3+"
</a>" +
lurlt + "pages="+iNext+"><FONT color=red>"+lt4+"
; </a>" +
lurlt + "pages="+iLast+"><FONT color=red>"+lt5+"
; </a>";
st=""+
" <TABLE align=center border=0 cellPadding=0 cellSpacing=
0 width=\"95%\"> "+
" <TBODY> <TR> <TD align=middle bgColor=#97badd width=\"1
00%\"><FONT color=#ff0000>"+
lt6+
" </FONT></TD></TR></TBODY></TABLE><BR> ";

out.print(st);

}

}
} catch (Exception e) { out.println("error: "+e); }
}

%>

<%
//留言板界面尾部
String lbottom="";
lbottom=lbottom+
" <center> \n"+
" <FORM action=reply.jsp method=post name=sign> \n"+
" <INPUT name=lw_class1 type=hidden value=cnzjj_gt> \n"+
" <INPUT name=lw_class2 type=hidden value="+lw_class2+"> \n"
+
" <INPUT name=pages type=hidden value=1> \n"+
" <INPUT name=zt_time type=hidden value="+zt_time+"> \n"+
" <INPUT name=zt_author type=hidden value="+zt_author+"> \n"
+
" <TABLE bgColor=#d5e8fd border=0 cellSpacing=1 width=\"95%\"> \n"+

" <TBODY> \n"+
" <TR> \n"+
" <TD align=middle bgColor=#e6e6fa colSpan=2 noWrap><STRONG><FONT
color=blue \n"+
" face=楷体_GB2312 size=5>发 表 意 见</FONT></STRONG> &nbs
p; [加*的内容必须填写] </TD></TR> \n"+
" <TR> \n"+
" <TD noWrap width=\"45%\"> \n"+
" <DIV align=left> \n"+
" <TABLE bgColor=#d5e8fd border=0 cellSpacing=1 width=\"100%\">
\n"+
" <TBODY> \n"+
" <TR> \n"+
" <TD noWrap width=\"100%\">*留言主题:<INPUT maxLength=40 n
ame=lw_title \n"+
" size=36></TD></TR> \n"+
" <TR> \n"+
" <TD noWrap width=\"100%\">*网上大名:<INPUT maxLength=18 n
ame=lw_author \n"+
" size=36></TD></TR> \n"+
" <TR> \n"+
" <TD noWrap width=\"100%\"> 主页标题:<INPUT maxLength
=40 name=pagetitle \n"+
" size=36></TD></TR> \n"+
" <TR> \n"+
" <TD noWrap width=\"100%\"> 主页地址:<INPUT maxLength
=255 name=author_http \n"+
" size=36></TD></TR> \n"+
" <TR> \n"+
" <TD noWrap width=\"100%\">*电子邮件:<INPUT maxLength=40 n
ame=author_email \n"+
" size=36></TD></TR></TBODY></TABLE></DIV></TD> \n"+
" <TD noWrap vAlign=top width=\"55%\"> \n"+
" <DIV align=left> \n"+
" <TABLE bgColor=#b6d7fc border=0 cellSpacing=1 width=\"100%\">
\n"+
" <TBODY> \n"+
" <TR> \n"+
" <TD width=\"100%\">请在下面填写你的留言:</TD></TR> \n"+

" <TR> \n"+
" <TD width=\"100%\"><TEXTAREA cols=50 name=lw_content rows=
7></TEXTAREA></TD></TR></TBODY></TABLE></DIV></TD></TR> \n"+
" <TR> \n"+
" <TD bgColor=#fbf7ea colSpan=2 noWrap>表情\n"+
" <INPUT name=gifface type=radio value=1 checked><IMG \n"+
" alt=\"1.gif (152 bytes)\" height=15 src=\"1.gif\" width=15> <I
NPUT \n"+
" name=gifface type=radio value=2><IMG alt=\"2.gif (174 bytes)\"
height=15 \n"+
" src=\"2.gif\" width=15> <INPUT name=gifface type=radio value=3
><IMG \n"+
" alt=\"3.gif (147 bytes)\" height=15 src=\"3.gif\" width=15> <I
NPUT \n"+
" name=gifface type=radio value=4><IMG alt=\"4.gif (172 bytes)\"
height=15 \n"+
" src=\"4.gif\" width=15> <INPUT name=gifface type=radio value=5
><IMG \n"+
" alt=\"5.gif (118 bytes)\" height=15 src=\"5.gif\" width=15> <I
NPUT \n"+
" name=gifface type=radio value=6><IMG alt=\"6.gif (180 bytes)\"
height=15 \n"+
" src=\"6.gif\" width=15> <INPUT name=gifface type=radio value=7
><IMG \n"+
" alt=\"7.gif (180 bytes)\" height=15 src=\"7.gif\" width=15> <I
NPUT \n"+
" name=gifface type=radio value=8><IMG alt=\"8.gif (96 bytes)\"
height=15 \n"+
" src=\"8.gif\" width=15> <INPUT name=gifface type=radio value=9
><IMG \n"+
" alt=\"9.gif (162 bytes)\" height=15 src=\"9.gif\" width=15> <I
NPUT \n"+
" name=gifface type=radio value=10><IMG alt=\"10.gif (113 bytes)
\" height=15 \n"+
" src=\"10.gif\" width=15> <INPUT name=gifface type=radio value=
11><IMG \n"+
" alt=\"11.gif (93 bytes)\" height=15 src=\"11.gif\" width=15> <
INPUT \n"+
" name=gifface type=radio value=12> <IMG alt=\"12.gif (149 bytes
)\" height=14 \n"+
" src=\"12.gif\" width=15> \n"+
" <INPUT \n"+
" name=gifface type=radio value=13> <IMG alt=\"13.gif (149 bytes
)\" height=14 \n"+
" src=\"13.gif\" width=15> \n"+
" <INPUT \n"+
" name=gifface type=radio value=14> <IMG alt=\"14.gif (149 bytes
)\" height=14 \n"+
" src=\"14.gif\" width=15> \n"+
" <INPUT \n"+
" name=gifface type=radio value=15> <IMG alt=\"15.gif (149 bytes
)\" height=14 \n"+
" src=\"15.gif\" width=15> \n"+
" <INPUT \n"+
" name=gifface type=radio value=16> <IMG alt=\"16.gif (149 bytes
)\" height=14 \n"+
" src=\"16.gif\" width=15> </TD> \n"+
" </TR> \n"+
" <TR> \n"+
" <TD align=middle colSpan=2 noWrap><INPUT name=cmdGO onclick=\"re
turn ValidInput()\" type=submit value=\"提 交\"> \n"+

" <INPUT name=cmdPrev onclick=\"return ValidInput()\" type=submit valu
e=\"预 览\"> \n"+
" <INPUT name=cmdCancel type=reset value=\"重 写\"> <INPU
T name=cmdBack onclick=javascript:history.go(-1) type=button value=\"返
回\"> \n"+
" </TD></TR></TBODY></TABLE></FORM></CENTER></DIV> ";
out.print(lbottom);

%>

</body></html>

作 者: precom (皮蛋) 2000.12.10

(0)

相关推荐

  • 用ReactJS和Python的Flask框架编写留言板的代码示例

    近期要在生产环境上使用react,所以,自己学习了一下,写了一个简单的留言板小程序.完整的代码可以到这里下载:message-board Use 前端使用React,然后还有Bootstrap和jQuery,React负责前端展现,jQuery主要是向服务器发送ajax请求. 后端使用Flask和MongoDB,为前端提供数据.这里主要关注前端,对于后端不做过多说明. 使用webpack,对js文件进行打包. About React React是facebook开发一个用于前段交互的Javasc

  • JS+CSS模拟可以无刷新显示内容的留言板实例

    本文实例讲述了JS+CSS模拟可以无刷新显示内容的留言板功能.分享给大家供大家参考.具体实现方法如下: 复制代码 代码如下: <!DOCTYPE html PUBLIC "-//W3C//h2D XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/h2D/xhtml1-transitional.h2d"> <html xmlns="http://www.w3.org/1999/

  • jsp留言板源代码一: 给jsp初学者.

    jsp留言板源代码一: 给jsp初学者. 作 者: precom (皮蛋) oracle数据表创建. create table guestbook ( lw_title varchar2(100) not null, --留言主题 lw_author varchar2(20) not null, --网上大名 pk author_http varchar2(40) , --主页地址 author_email varchar2(40) not null,--电子信箱 pk expression v

  • 本人ajax留言板的源程序 不错的应用js

    复制代码 代码如下: // JavaScript Document function $(id) {     return document.getElementById(id);     } function echo(obj,html) {     $(obj).innerHTML=html; } function fopen(obj) {     $(obj).style.display=""; } function fclose(obj) {     $(obj).style.

  • js 实现的可折叠留言板(附源码下载)

    javaScript 代码如下: $(document).ready(function(){ $(".message_list .message_body:gt(0)").hide(); $(".message_list li:gt(4)").hide(); $(".message_head").click(function(){ $(this).next(".message_body").slideToggle(500) r

  • jsp留言板源代码二: 给jsp初学者.

    作 者: precom (皮蛋) 2000.12.10 guestbook.jsp =========================== <html><head> <META content="text/html; charset=gb2312 " http-equiv=Content-Type> <title>张家界电话黄页(网上114)</title></head> <style type="

  • jsp留言板源代码四: 给jsp初学者.

    作 者: precom (皮蛋) 其中的opDb.java ============================================ package ymbean; import java.sql.*; import java.util.*; import java.text.*; import com.chinazjj.sql.dsql; import com.chinazjj.util.dutil; //其他的包dsql,dutil中的内容我就不再贴了,在本文件中用到的两个函

  • JS实现留言板功能

    每天一个JS 小demo之留言板.主要知识点:DOM方法的理解和运用 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> <style type="text/css"> .wrap { width: 400px; margin: 30px au

  • js使用DOM操作实现简单留言板的方法

    本文实例讲述了js使用DOM操作实现简单留言板的方法.分享给大家供大家参考.具体分析如下: 如图所示简易留言板,也就是自娱自乐版,说白了就是练习DOM操作. 要点一:document.createElement("标签名") 新建元素 要点二:父元素.appendChild("元素")  把新建的元素插入到页面的标签中(在标签的最后一个显示),这样才会在浏览器中显示出来 要点三:父元素.insertBefore("元素","要插入哪个元

  • jsp留言板源代码三: 给jsp初学者.

    作 者: precom (皮蛋) 2000.12.10reply.jsp ==================================== <html><head> <META content="text/html; charset=gb2312 " http-equiv=Content-Type> <title>张家界电话黄页(网上114)</title></head> <style type=&q

  • JSP中的源代码泄漏问题

    摘要:在JSP技术得到广泛应用的同时,由于源代码泄漏而引起的JSP安全性也受到了广泛的关注.本文分析了几种造成源代码泄漏的因素,并针对每种因素提出了各自的解决方法. 关键词:JSP  源代码 泄漏 引言 JSP编程语言自从推出之日起,由于它的快速.平台无关.可扩展.面向对象等特性得到了越来越广泛的应用,越来越多的厂家开发出了各种各样的支持平台如IBM 公司的WebSphere.BEA公司的WebLogic等等,也有越来越多的网站开始将自己的平台架构在JSP 环境中.   但是随之而来的就是一系列

  • java web实现简单留言板功能

    本文实例为大家分享了java web实现简单留言板的具体代码,供大家参考,具体内容如下 一.目标 用户可以登录并记住密码进入留言板,添加留言,点击留言列表中的标题可显示该条留言全部内容. 二.相关知识 1.使用Cookie实现自动登录 用户第一次登录网站,服务器将用户名和密码以Cookie的形式发送到客户端.当客户之后再次访问该网站时,浏览器自动将Cookie文件中的用户名和密码随请求一起发送到服务器,服务器从Cookie中取出用户名和密码并且通过验证. 2.java类的定义与使用 定义java

  • java实现留言板功能实例

    JSP+JavaBean的留言板技术 <span style="font-size:16px;">Messages.html <HTML></span><span style="font-size:16px;"><HEAD> <TITLE> message board </TITLE></HEAD> <BODY> <center>留言板</c

  • PHP实现基本留言板功能原理与步骤详解

    本文实例讲述了PHP实现基本留言板功能的方法.分享给大家供大家参考,具体如下: 作为一个PHP的初学者,我试着写了一个留言板,页面有点丑,多多见谅,嘻嘻嘻 #我们写留言板需要用到数据库,所以我们先要建立三个表 user表 friend表 text表 #首先需要写一个注册与登录 ##注册 zhuce.html <meta charset="utf-8"> <title>zhuce</title> </head> <body> &

  • vue实现留言板todolist功能

    通过前面两篇文章的的学习,我们掌握了vue的基本用法. 本文,就利用这些基础知识来实现一个留言板, 老外把他称之为todolist. 第一步.使用bootstrap做好布局 <!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8"> <title></title> <link rel="stylesheet&quo

随机推荐