zl程序教程

您现在的位置是:首页 >  其它

当前栏目

一个简洁的多级别论坛

一个 级别 简洁 论坛
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>