广

PHP编程

  • IOS开发
  • android开发
  • PHP编程
  • JavaScript
  • ASP.NET
  • ASP编程
  • JSP编程
  • Java编程
  • 易语言
  • Ruby编程
  • Perl编程
  • AJAX
  • 正则表达式
  • C语言
  • 编程开发

    一个简洁的多级别论坛

    2018-09-29 11:21:55 次阅读 稿源:互联网
    零七广告
    本论坛总共用了不到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 style="text-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  style="text-align:center">".$ra[1]);  
         print("<td style="text-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 style="text-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> 

    零七网部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与零七网进行文章共享合作。

    零七广告
    零七广告
    零七广告
    零七广告