本论坛总共用了不到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> <style type="text/css">
<!-- .unnamed1 { font-size: 9pt; font-family: "宋体"} .unnamed1 A {COLOR: #000088; FONT-SIZE: 9pt; TEXT-DECORATION: none; TEXT-TRANSFORM: none; font-family: "宋体"} .unnamed1 A:hover {COLOR: #880000; FONT-SIZE: 9pt; TEXT-DECORATION: underline overline; font-family: "楷体_GB2312"} .unnamed2 { font-size: 12px; color: #9933FF}
-->
</style> </head> <body bgcolor="#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 * from yxforum where id=".$fl; $mr=mysql_query($q,$m); $ra=mysql_fetch_row($mr); ?> <p align=center><b><?print($ra[2]);?></b><br> <?if ($fl!=1) { ?> <small><?printf("(<a href=mailto:%s>%s</a>) ",$ra[7],$ra[6]);?> </small></p> <?$alltt=$ra[2]; $lastid=$ra[4]; print("<center><table width=90% border=1><tr><td bgcolor=#dddddd class=unnamed1>".$ra[3]."</tr></table></center>"); print("<br><small>跟随主题:</small>"); } $q="select * from yxforum where fl=".$fl." order by dt desc"; 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> <table border=0 width=732 class="unnamed1"> <tr align="center" valign="top" bgcolor="#FFFFCC"> <td width="186" >最新回应时间 <td width="88">发表人 <td width="414">主题 <td width="44">回应数 </tr> <? $x[0]="ffffcc";$x[1]="DEEFFF";$i=1; while ($ra) /*显示目前的主题*/ {$ys_c=$i%2; print("<tr height=12 bgcolor=#".$x[$ys_c]."><td align=center>".$ra[1]); print("<td align=center><a href=mailto:".$ra[7].">".$ra[6]."</a>"); print("<td>"); printf("<a href=index.php?fl=%s>%s</a>",$ra[0],$ra[2]); print("<td align=center>".$ra[8]); print("</tr>"); $ra=mysql_fetch_row($mr); $i++; if ($i>15) break; }
?> </table></center> <form action=index.php method=get name=F0 onsubmit="document.F0.p.value--;return true;"> <span class=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("<a href=index.php?fl=%s>首页</a> ",$hf_fl); printf("<a href=index.php?fl=%s&p=%d>上一页</a> ",$hf_fl,$p-1);} if ($ra) {printf("<a href=index.php?fl=%s&p=%d>下一页</a> ",$hf_fl,$p+1); printf("<a href=index.php?fl=%s&p=%d>末页</a> ",$hf_fl,$pages-1);} ?>指定第<input type=text size=2 name=p>页 </span> <span class=unnamed1> <?if ($hf_fl!=1) {printf("<br><a href=index.php?fl=%s>上一级</a> ",$lastid); print("<a href=index.php>最高级</a><br>");} ?> </form><center> <table width=80% bgcolor=#eeeeff><tr><td class=unnamed1> <?print(($fl==1)?"加新贴:":"回应:");?> <form action="addnew.php" method=post name="F1"> 姓名: <input type="text" name="nm" size="15"> <br> Email: <input type="text" name="em" size="45"> <br> 标题(必填): <input type="text" name="tt" size="45" <?if ($fl!=1) print("value=回复:".$alltt);?> > <input type=hidden name="fl" value="<?print($hf_fl);?>"> <input type=hidden name="p" value="<?print($p);?>"> <br> 正文(必填): <br> <textarea name="zw" cols="50" rows="10"></textarea> <input type="submit" name="Submit" value="提 交"> </form> </tr></table></center> <hr> <center>自用论坛程序0.25版 设计工具:PHP+MYSQL<br> <a href=mailto:fhl@cgi.hnpts.ha.cn>古钺青剑</a> 制作<br><a href=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="<font color=red>不要偷懒嘛!把表格填完再提交不迟。</font>"; else {$q="insert into yxforum (dt,tp,ct,fl,ip,un,em,num) values" ."(now(),"".$tt."","".$zw."",".$fl.","".$REMOTE_ADDR."","".$nm."","".$em."",0)"; mysql_query($q,$m); $q="select num,fl from yxforum where id=".$fl; $fl_a=$fl; do { $mr=mysql_query($q,$m); $ra=mysql_fetch_row($mr); $num=$ra[0]+1; $q="update yxforum set dt=now(),num=".$num." where id=".$fl; $fl=$ra[1]; mysql_query($q,$m); $q="select num,fl from yxforum where id=".$fl; } while ($fl>0); $msg="<font color=green>你的意见已经成功提交!</font>"; } ?> <html> <head> <script language="Javascript"> function go() {document.location="index.php?fl=<?print($fl_a);?>&p=<?print($p)?>"; } </script> <body onload="setTimeout('go()',3000);"> <?print($msg);?><br> 系统将在3秒钟以后自动返回。如果不能返回或者你着急,请按<a href=index.php?fl=<?print($fl_a);?>&p=<?print($p)?>>这里</a> </body> |