一个简洁的多级别论坛
一个 级别 简洁 论坛
2023-06-13 09:13:44 时间
本论坛总共用了不到200行代码,执行速度相当快。运行例子在:http://www.hnpts.ha.cn/forum
MYSQL数据库:yxforum
+-------+--------------+------+-----+---------+----------------+
|Field|Type |Null|Key|Default|Extra |
+-------+--------------+------+-----+---------+----------------+
|id |int(11) | |PRI|0 |auto_increment|
|dt |datetime |YES | |NULL | |
|tp |varchar(255)|YES | |NULL | |
|ct |text |YES | |NULL | |
|fl |int(11) |YES | |NULL | |
|ip |varchar(20) |YES | |NULL | |
|un |varchar(50) |YES | |NULL | |
|em |varchar(60) |YES | |NULL | |
|num |int(11) |YES | |NULL | |
+-------+--------------+------+-----+---------+----------------+
index.php:
<html>
<head>
<styletype="text/css">
<!--
.unnamed1{ font-size:9pt;font-family:"宋体"}
.unnamed1A{COLOR:#000088;FONT-SIZE:9pt;TEXT-DECORATION:none;TEXT-TRANSFORM:none;font-family:"宋体"}
.unnamed1A:hover{COLOR:#880000;FONT-SIZE:9pt;TEXT-DECORATION:underlineoverline;font-family:"楷体_GB2312"}
.unnamed2{ font-size:12px;color:#9933FF}
-->
</style>
</head>
<bodybgcolor="#FFFFFF"text="#000000"link="#000066"vlink="#0000CC"alink="#000099">
<?$m=mysql_connect("localhost","××××","××××");
mysql_select_db("××××",$m);
?>
<?if($fl=="")$fl=1;
$hf_fl=$fl;
$q="select*fromyxforumwhereid=".$fl;
$mr=mysql_query($q,$m);
$ra=mysql_fetch_row($mr);
?>
<palign=center><b><?print($ra[2]);?></b><br>
<?if($fl!=1){
?>
<small><?printf("(<ahref=mailto:%s>%s</a>)",$ra[7],$ra[6]);?>
</small></p>
<?$alltt=$ra[2];
$lastid=$ra[4];
print("<center><tablewidth=90%border=1><tr><tdbgcolor=#ddddddclass=unnamed1>".$ra[3]."</tr></table></center>");
print("<br><small>跟随主题:</small>");
}
$q="select*fromyxforumwherefl=".$fl."orderbydtdesc";
if($p=="")$p=0;
$mr=mysql_query($q,$m);
$f=mysql_num_fields($mr);
$ra=mysql_fetch_row($mr);
$i=0;$p1=$p*15;/*跳过指定的页数对应的行*/
while($i<$p1)
{$i++;
$ra=mysql_fetch_row($mr);
if(!$ra)break;}
?>
<center>
<tableborder=0width=732class="unnamed1">
<tralign="center"valign="top"bgcolor="#FFFFCC">
<tdwidth="186">最新回应时间
<tdwidth="88">发表人
<tdwidth="414">主题
<tdwidth="44">回应数
</tr>
<?
$x[0]="ffffcc";$x[1]="DEEFFF";$i=1;
while ($ra) /*显示目前的主题*/
{$ys_c=$i%2;
print("<trheight=12bgcolor=#".$x[$ys_c]."><td align=center>".$ra[1]);
print("<tdalign=center><ahref=mailto:".$ra[7].">".$ra[6]."</a>");
print("<td>");
printf("<ahref=index.php?fl=%s>%s</a>",$ra[0],$ra[2]);
print("<tdalign=center>".$ra[8]);
print("</tr>");
$ra=mysql_fetch_row($mr);
$i++;
if($i>15)break;
}
?>
</table></center>
<formaction=index.phpmethod=getname=F0onsubmit="document.F0.p.value--;returntrue;">
<spanclass=unnamed1>
<?
$alllines=mysql_affected_rows($m);
$pages=$alllines/15;
if($pages-intval($pages)!=0)$pages=intval($pages)+1;
else$pages=intval($pages);
print("共".$pages."页第".($p+1)."页");
if($p>0){printf("<ahref=index.php?fl=%s>首页</a>",$hf_fl);
printf("<ahref=index.php?fl=%s&p=%d>上一页</a>",$hf_fl,$p-1);}
if($ra) {printf("<ahref=index.php?fl=%s&p=%d>下一页</a>",$hf_fl,$p+1);
printf("<ahref=index.php?fl=%s&p=%d>末页</a>",$hf_fl,$pages-1);}
?>指定第<inputtype=textsize=2name=p>页
</span>
<spanclass=unnamed1>
<?if($hf_fl!=1) {printf("<br><ahref=index.php?fl=%s>上一级</a>",$lastid);
print("<ahref=index.php>最高级</a><br>");}
?>
</form><center>
<tablewidth=80%bgcolor=#eeeeff><tr><tdclass=unnamed1>
<?print(($fl==1)?"加新贴:":"回应:");?>
<formaction="addnew.php"method=postname="F1">
姓名:
<inputtype="text"name="nm"size="15">
<br>
Email:
<inputtype="text"name="em"size="45">
<br>
标题(必填):
<inputtype="text"name="tt"size="45"<?if($fl!=1)print("value=回复:".$alltt);?>>
<inputtype=hiddenname="fl"value="<?print($hf_fl);?>">
<inputtype=hiddenname="p"value="<?print($p);?>">
<br>
正文(必填):<br>
<textareaname="zw"cols="50"rows="10"></textarea>
<inputtype="submit"name="Submit"value="提交">
</form>
</tr></table></center>
<hr>
<center>自用论坛程序0.25版设计工具:PHP+MYSQL<br>
<ahref=mailto:fhl@cgi.hnpts.ha.cn>古钺青剑</a>制作<br><ahref=http://www.fhlfox.dhs.org>逍遥飞狐多媒体作坊</a>2000</center>
</span>
</body>
</html>
addnew.php:
<?$m=mysql_connect("localhost","×××","×××××");
mysql_select_db("×××××",$m);
$zw=ereg_replace("<","<",$zw);
$zw=ereg_replace(">",">",$zw);
$zw=ereg_replace("n","<br>",$zw);
$zw=ereg_replace("","",$zw);
$tt=ereg_replace("<","<",$tt);
$tt=ereg_replace(">",">",$tt);
if($nm=="")$nm="无名宝";
if($em==""){$nm.="<--是一只没有MAIL的菜鸟";$em="No";}
$err=strlen($tt)*strlen($zw);
if($err==0)
$msg="<fontcolor=red>不要偷懒嘛!把表格填完再提交不迟。</font>";
else{$q="insertintoyxforum(dt,tp,ct,fl,ip,un,em,num)values"
."(now(),"".$tt."","".$zw."",".$fl.","".$REMOTE_ADDR."","".$nm."","".$em."",0)";
mysql_query($q,$m);
$q="selectnum,flfromyxforumwhereid=".$fl;
$fl_a=$fl;
do{$mr=mysql_query($q,$m);
$ra=mysql_fetch_row($mr);
$num=$ra[0]+1;
$q="updateyxforumsetdt=now(),num=".$num."whereid=".$fl;
$fl=$ra[1];
mysql_query($q,$m);
$q="selectnum,flfromyxforumwhereid=".$fl;
}while($fl>0);
$msg="<fontcolor=green>你的意见已经成功提交!</font>";
}
?>
<html>
<head>
<scriptlanguage="Javascript">
functiongo()
{document.location="index.php?fl=<?print($fl_a);?>&p=<?print($p)?>";
}
</script>
<bodyonload="setTimeout("go()",3000);">
<?print($msg);?><br>
系统将在3秒钟以后自动返回。如果不能返回或者你着急,请按<ahref=index.php?fl=<?print($fl_a);?>&p=<?print($p)?>>这里</a>
</body>
MYSQL数据库:yxforum
+-------+--------------+------+-----+---------+----------------+
|Field|Type |Null|Key|Default|Extra |
+-------+--------------+------+-----+---------+----------------+
|id |int(11) | |PRI|0 |auto_increment|
|dt |datetime |YES | |NULL | |
|tp |varchar(255)|YES | |NULL | |
|ct |text |YES | |NULL | |
|fl |int(11) |YES | |NULL | |
|ip |varchar(20) |YES | |NULL | |
|un |varchar(50) |YES | |NULL | |
|em |varchar(60) |YES | |NULL | |
|num |int(11) |YES | |NULL | |
+-------+--------------+------+-----+---------+----------------+
index.php:
<html>
<head>
<styletype="text/css">
<!--
.unnamed1{ font-size:9pt;font-family:"宋体"}
.unnamed1A{COLOR:#000088;FONT-SIZE:9pt;TEXT-DECORATION:none;TEXT-TRANSFORM:none;font-family:"宋体"}
.unnamed1A:hover{COLOR:#880000;FONT-SIZE:9pt;TEXT-DECORATION:underlineoverline;font-family:"楷体_GB2312"}
.unnamed2{ font-size:12px;color:#9933FF}
-->
</style>
</head>
<bodybgcolor="#FFFFFF"text="#000000"link="#000066"vlink="#0000CC"alink="#000099">
<?$m=mysql_connect("localhost","××××","××××");
mysql_select_db("××××",$m);
?>
<?if($fl=="")$fl=1;
$hf_fl=$fl;
$q="select*fromyxforumwhereid=".$fl;
$mr=mysql_query($q,$m);
$ra=mysql_fetch_row($mr);
?>
<palign=center><b><?print($ra[2]);?></b><br>
<?if($fl!=1){
?>
<small><?printf("(<ahref=mailto:%s>%s</a>)",$ra[7],$ra[6]);?>
</small></p>
<?$alltt=$ra[2];
$lastid=$ra[4];
print("<center><tablewidth=90%border=1><tr><tdbgcolor=#ddddddclass=unnamed1>".$ra[3]."</tr></table></center>");
print("<br><small>跟随主题:</small>");
}
$q="select*fromyxforumwherefl=".$fl."orderbydtdesc";
if($p=="")$p=0;
$mr=mysql_query($q,$m);
$f=mysql_num_fields($mr);
$ra=mysql_fetch_row($mr);
$i=0;$p1=$p*15;/*跳过指定的页数对应的行*/
while($i<$p1)
{$i++;
$ra=mysql_fetch_row($mr);
if(!$ra)break;}
?>
<center>
<tableborder=0width=732class="unnamed1">
<tralign="center"valign="top"bgcolor="#FFFFCC">
<tdwidth="186">最新回应时间
<tdwidth="88">发表人
<tdwidth="414">主题
<tdwidth="44">回应数
</tr>
<?
$x[0]="ffffcc";$x[1]="DEEFFF";$i=1;
while ($ra) /*显示目前的主题*/
{$ys_c=$i%2;
print("<trheight=12bgcolor=#".$x[$ys_c]."><td align=center>".$ra[1]);
print("<tdalign=center><ahref=mailto:".$ra[7].">".$ra[6]."</a>");
print("<td>");
printf("<ahref=index.php?fl=%s>%s</a>",$ra[0],$ra[2]);
print("<tdalign=center>".$ra[8]);
print("</tr>");
$ra=mysql_fetch_row($mr);
$i++;
if($i>15)break;
}
?>
</table></center>
<formaction=index.phpmethod=getname=F0onsubmit="document.F0.p.value--;returntrue;">
<spanclass=unnamed1>
<?
$alllines=mysql_affected_rows($m);
$pages=$alllines/15;
if($pages-intval($pages)!=0)$pages=intval($pages)+1;
else$pages=intval($pages);
print("共".$pages."页第".($p+1)."页");
if($p>0){printf("<ahref=index.php?fl=%s>首页</a>",$hf_fl);
printf("<ahref=index.php?fl=%s&p=%d>上一页</a>",$hf_fl,$p-1);}
if($ra) {printf("<ahref=index.php?fl=%s&p=%d>下一页</a>",$hf_fl,$p+1);
printf("<ahref=index.php?fl=%s&p=%d>末页</a>",$hf_fl,$pages-1);}
?>指定第<inputtype=textsize=2name=p>页
</span>
<spanclass=unnamed1>
<?if($hf_fl!=1) {printf("<br><ahref=index.php?fl=%s>上一级</a>",$lastid);
print("<ahref=index.php>最高级</a><br>");}
?>
</form><center>
<tablewidth=80%bgcolor=#eeeeff><tr><tdclass=unnamed1>
<?print(($fl==1)?"加新贴:":"回应:");?>
<formaction="addnew.php"method=postname="F1">
姓名:
<inputtype="text"name="nm"size="15">
<br>
Email:
<inputtype="text"name="em"size="45">
<br>
标题(必填):
<inputtype="text"name="tt"size="45"<?if($fl!=1)print("value=回复:".$alltt);?>>
<inputtype=hiddenname="fl"value="<?print($hf_fl);?>">
<inputtype=hiddenname="p"value="<?print($p);?>">
<br>
正文(必填):<br>
<textareaname="zw"cols="50"rows="10"></textarea>
<inputtype="submit"name="Submit"value="提交">
</form>
</tr></table></center>
<hr>
<center>自用论坛程序0.25版设计工具:PHP+MYSQL<br>
<ahref=mailto:fhl@cgi.hnpts.ha.cn>古钺青剑</a>制作<br><ahref=http://www.fhlfox.dhs.org>逍遥飞狐多媒体作坊</a>2000</center>
</span>
</body>
</html>
addnew.php:
<?$m=mysql_connect("localhost","×××","×××××");
mysql_select_db("×××××",$m);
$zw=ereg_replace("<","<",$zw);
$zw=ereg_replace(">",">",$zw);
$zw=ereg_replace("n","<br>",$zw);
$zw=ereg_replace("","",$zw);
$tt=ereg_replace("<","<",$tt);
$tt=ereg_replace(">",">",$tt);
if($nm=="")$nm="无名宝";
if($em==""){$nm.="<--是一只没有MAIL的菜鸟";$em="No";}
$err=strlen($tt)*strlen($zw);
if($err==0)
$msg="<fontcolor=red>不要偷懒嘛!把表格填完再提交不迟。</font>";
else{$q="insertintoyxforum(dt,tp,ct,fl,ip,un,em,num)values"
."(now(),"".$tt."","".$zw."",".$fl.","".$REMOTE_ADDR."","".$nm."","".$em."",0)";
mysql_query($q,$m);
$q="selectnum,flfromyxforumwhereid=".$fl;
$fl_a=$fl;
do{$mr=mysql_query($q,$m);
$ra=mysql_fetch_row($mr);
$num=$ra[0]+1;
$q="updateyxforumsetdt=now(),num=".$num."whereid=".$fl;
$fl=$ra[1];
mysql_query($q,$m);
$q="selectnum,flfromyxforumwhereid=".$fl;
}while($fl>0);
$msg="<fontcolor=green>你的意见已经成功提交!</font>";
}
?>
<html>
<head>
<scriptlanguage="Javascript">
functiongo()
{document.location="index.php?fl=<?print($fl_a);?>&p=<?print($p)?>";
}
</script>
<bodyonload="setTimeout("go()",3000);">
<?print($msg);?><br>
系统将在3秒钟以后自动返回。如果不能返回或者你着急,请按<ahref=index.php?fl=<?print($fl_a);?>&p=<?print($p)?>>这里</a>
</body>
相关文章
- 使用OSTaskCreate()建立一个任务后,该任务处于( )_worksheetfunction函数用法
- Erlik 2:一个基于Flask开发的包含大量安全漏洞的研究平台
- 从一个 Demo 说起 Zookeeper 服务端源码
- 【每天一个小知识】锁的基本思想
- 系统Linux的新分支:走向下一个级别(linux的分支)
- 一个国际化多语言OA系统
- 使用MySQL快速导出一个表的方法(mysql 导出一个表)
- Linux编译安装:探索一个开源世界的奥秘(linux编译安装原理)
- C语言与MySQL线程构建一个可靠的系统(c mysql线程)
- Oracle主备是否同步一个重要问题(oracle主备是否同步)
- 实现一个系统多个Redis的共享存储(一个系统几个redis)
- 如何实现多线程安全的同时共用一个Redis(多线程共用一个redis)
- 筛选Oracle数据库中根据条件筛选之旅(oracle中一个条件)
- 到一个将Redis中多个集合统一至一个(redis集合多个)
- Redis的词性一个高性能的键值数据库(redis词性)
- 一个简单的jQuery插件ajaxfileupload.js实现ajax上传文件例子