一个模仿oso的论坛程序(之一)

我经常使用oso的论坛,个人感觉挺好的,因此模仿oso的界面编了一个程序,与大家共享。
程序由三部分组成,即显示主题信息,显示论坛信息,增加论坛信息,主题与论坛内容采用主从表关系。
表结构如下:
drop table fr_t_forumtitle;
create table fr_t_forumtitle(
   id         integer,
   state      varchar(1),
   readcount  integer,
   replycount integer,
   title      varchar(100),
   createman  varchar(20),
   replyman   varchar(20),
   replytime  datetime);

drop table fr_t_forumcontent;
create table fr_t_forumcontent(
   id          integer,
   replyman    varchar(20),
   replytime   datetime,
   replyemail  varchar(100),
   replyhttp   varchar(100),
   replyface   smallint,
   content     text);

drop table fr_t_parameter;
create table fr_t_parameter(
   code    varchar(10),
   name    varchar(40),
   content varchar(10));
insert into  fr_t_parameter(code,name,content) values('pageline','分页数','20'); /* 调整该参数可以修改每页行数 */

程序1:mainforum.php
<html>
<head>
<link rel="STYLESHEET" type="text/css" href="fp_zhangcg.css">
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<meta name="Microsoft Theme" content="none">
<meta name="Microsoft Border" content="none">
<title>论坛</title>
</head>

<body bgcolor="#C0C0C0" background="backcolor.GIF">

<?
  include ("c:mydbheader.inc");
?>

<table width="100%" border="0">
<tr class="text">  
<td width="50%">   <div align="left">当前位置:主页——论坛</div> </td>
<td width="20%">   <div align="center"> </div> </td>
<td width="10%">   <div align="center">
<A href="addmember.php" target=_blank>会员注册</A></div> </td>
<td width="10%">   <div align="center">论坛搜索</div> </td>
<td width="10%">   <div align="center"> </div> </td>
</table>

  <?
    $dbh =  mysql_connect('localhost:3306','root','');
    mysql_select_db('test');  

    $res=mysql_query("SELECT content FROM fr_t_parameter where code = 'pageline'",$dbh);   
    $row=mysql_fetch_array($res);   
    global $pageline;
    $pageline = $row["content"];  
    if (empty($pageline))  {
       $res=mysql_query("insert into fr_t_parameter(code,name,content) values('pageline','分页数','20')",$dbh);   
       $row=mysql_fetch_array($res);   
       $pageline = 20;
    }
        
    $res=mysql_query("SELECT COUNT(*) AS rcnt FROM fr_t_forumtitle",$dbh);   
    $row=mysql_fetch_array($res);   
    $rcount = $row["rcnt"];   

    $res=mysql_query("SELECT COUNT(*) AS rcnt_con FROM fr_t_forumcontent",$dbh);   
    $row=mysql_fetch_array($res);   
    $rcon_count = $row["rcnt_con"];   

    print '<table width="100%" border="0">';
    print '<tr class="text">';  
    print '<td width="15%">   </td>';
    print '<td width="35%">  <div align="left"> ';
    print "主题数:".$rcount."  帖子数:".$rcon_count;
    print '<td width="35%">  <div align="right"> ';
    print '<a href="addforum.php?theme_id=0" target="_top"><img src="http://edu.cnzz.cn/NewsInfo/post.gif" alt="加新帖子" border="0"></a>';
    print '<td width="15%">   </td>';
    print '</td></table>';

    $pages=ceil($rcount / $pageline); //$pages变量现在包含所需的页数   
     
    if (empty($offset))  {
      $offset=1;   
      $curline = 0;
    } else
    $curline = ($offset - 1) * $pageline;
//打印表头
print '<table width="100%" border="0">';
print '<tr class="text"> <td width="50%">  <div align="center">';
if ($offset <> 1) { //如果偏移量是0,不显示前一页的链接   
  $newoffset=$offset - 1;   
  print "<a href='$PHP_SELF?offset=$newoffset'>前一页</a>";   
}  else {
print "前一页";
print "   ";
}
//计算总共需要的页数   
$pages=ceil($rcount/$pageline); //$pages变量现在包含所需的页数   
for ($i=1; $i <= $pages; $i++)  {
  $temps = "<a href='".$PHP_SELF.'?offset='.$i."'>".$i."</a>";
  print $temps;   
  print "   ";
}   
//检查是否是最后一页   
if ($pages!=0 && $offset!=$pages)  {
   $newoffset=$offset+1;   
   print "<a href='$PHP_SELF?offset=$newoffset'>下一页</a>";   
}  else print "下一页";
print '</div> </td>';
print '<td width="50%">  <div align="center">';
print "当前页:".$offset." 共".$pages."页";
print '</div> </td>';
print "</table>";

//处理详细信息
     
    print '<table width="100%" border="1">';
    print '<tr class="text"> ';
    print '<td width="6%">  <div align="center">New</div>    </td>';
    print '<td width="5%">  <div align="center">点击</div>   </td>';
    print '<td width="53%"> <div align="center">主题</div>   </td>';
    print '<td width="10%">  <div align="center">创建人</div> </td>';
    print '<td width="5%">  <div align="center">回复</div>   </td>';
    print '<td width="11%"> <div align="center">最后修改时间 </div> </td>';
    print '<td width="10%">  <div align="center">回复人</div> </td>';
    print '</tr>';

    $query = 'select id,state,readcount,title,createman,replycount,replytime,replyman
from fr_t_forumtitle order by replytime desc LIMIT '.$curline.',20';
    $res = mysql_query($query, $dbh);  
//    $li_rownum = mysql_num_rows($res);
//    for ($i=1; $i<=$li_rownum; $i++) {
//      $row = mysql_fetch_row($res);  
    while ($row = mysql_fetch_array($res)) {  
      print '<tr class="text"> ';
      print '<td width="6%"> '.$row["state"].'</td>';
      print '<td width="5%"><div align="center">'.$row["readcount"].'</td>';
      $tempstr = "<a href='readforum.php?readflag=".$row["id"]."'>".$row['title']."</a>";
      print '<td width="53%"> '.$tempstr.'</td>';
//      print '<td width="48%">'.$row["title"].'</td>';
      print '<td width="9%"> '.$row["createman"].'</td>';
      print '<td width="5%"><div align="center">'.$row["replycount"].'</td>';
      $temptime = substr($row["replytime"],5,11);
      print '<td width="11%"> '.$temptime.'</td>';
      print '<td width="10%"> '.$row["replyman"].'</td>';
      print '</tr>';
    }
print "</table>";

//打印表尾
print '<table width="100%" border="0">';
print '<tr class="text"> <td width="50%">  <div align="center">';
if ($offset <> 1) { //如果偏移量是0,不显示前一页的链接   
  $newoffset=$offset - 1;   
  print "<a href='$PHP_SELF?offset=$newoffset'>前一页</a>";   
}  else {
print "前一页";
print "   ";
}
//计算总共需要的页数   
for ($i=1; $i <= $pages; $i++)  {
  $temps = "<a href='".$PHP_SELF.'?offset='.$i."'>".$i."</a>";
  print $temps;   
  print "   ";
}   
//检查是否是最后一页   
if ($pages!=0 && $offset!=$pages)  {
   $newoffset=$offset+1;   
   print "<a href='$PHP_SELF?offset=$newoffset'>下一页</a>";   
}  else print "下一页";
print '</div> </td>';
print '<td width="50%">  <div align="center">';
print "当前页:".$offset." 共".$pages."页";
print '</div> </td>';
print "</table>";
//end of 打印表尾
?>

<?
  include ("c:mydbfooter.inc");
?>

</body>
</html>

时间: 2024-09-01 19:35:23

一个模仿oso的论坛程序(之一)的相关文章

一个模仿oso的论坛程序(之三)

程序三:readforum.php <HTML> <HEAD> <TITLE> 论坛信息 </TITLE> <link rel="STYLESHEET" type="text/css" href="fp_zhangcg.css"> <meta http-equiv="Content-Type" content="text/html; charset=g

一个模仿oso的论坛程序(之二)

程序二:addforum.php <html> <head> <link rel="STYLESHEET" type="text/css" href="fp_zhangcg.css"> <meta http-equiv="Content-Type" content="text/html; charset=gb2312"> <meta name="

一个模仿oso的php论坛程序(之一)第1/2页_php实例

我经常使用oso的论坛,个人感觉挺好的,因此模仿oso的界面编了一个程序,与大家共享.  程序由三部分组成,即显示主题信息,显示论坛信息,增加论坛信息,主题与论坛内容采用主从表关系.  表结构如下:  drop table fr_t_forumtitle;  create table fr_t_forumtitle(     id         integer,     state      varchar(1),     readcount  integer,     replycount 

模仿OSO的论坛(一)

  相信每一个到过OSO的人都会对OSO的论坛留下极深的印象,这个论坛无论从那一方面来说都是比较出色的.你想不想你的主页也有这么一个漂亮的论坛呢,其实并不太复杂的,下面我们仅从一些基本的部分来实现对OSO论坛的模仿.     由于我仅仅是使用这个论坛作为我的留言板,所以我的论坛可以算是OSO论坛的简配.1.在我的论坛中只有在用户登录后才能发言,用户的ID是存在一个叫"cookie_user"的cookie变量中的,2.我的论坛没有子论坛,3.我没有统计一个主题的点击数,4.在OSO论坛

模仿OSO的论坛(一)_php基础

     相信每一个到过OSO的人都会对OSO的论坛留下极深的印象,这个论坛无论从那一方面来说都是比较出色的.你想不想你的主页也有这么一个漂亮的论坛呢,其实并不太复杂的,下面我们仅从一些基本的部分来实现对OSO论坛的模仿.     由于我仅仅是使用这个论坛作为我的留言板,所以我的论坛可以算是OSO论坛的简配.1.在我的论坛中只有在用户登录后才能发言,用户的ID是存在一个叫"cookie_user"的cookie变量中的,2.我的论坛没有子论坛,3.我没有统计一个主题的点击数,4.在OS

模仿OSO的论坛(五)

在前面的post.php及reply.php中,在发言提交成功后都跳转到一个叫post_end.php的页面,这个页面主要是提示发言提交成功,并给出了一个到faq.php的链接,程序非常简单,我就一并写在下面了: <html> 你的发言已提交<br> <a href="faq.php">返回疑难问题首页</a> </html>     在这一节中,我们将着力讨论如果实现我们在开头所列出的本论坛所缺少的八项功能:     1.在

模仿OSO的论坛(五)_php基础

在前面的post.php及reply.php中,在发言提交成功后都跳转到一个叫post_end.php的页面,这个页面主要是提示发言提交成功,并给出了一个到faq.php的链接,程序非常简单,我就一并写在下面了: <html> 你的发言已提交<br> <a href="faq.php">返回疑难问题首页</a> </html>     在这一节中,我们将着力讨论如果实现我们在开头所列出的本论坛所缺少的八项功能:     1.在

一个模仿oso的php论坛程序源码(之三)第1/2页_php实例

程序三:readforum.php  <HTML>  <HEAD>  <TITLE> 论坛信息 </TITLE>  <link rel="STYLESHEET" type="text/css" href="fp_zhangcg.css">  <meta http-equiv="Content-Type" content="text/html; char

一个模仿oso的php论坛程序源码(之二)第1/3页_php实例

程序二:addforum.php  <html>  <head>  <link rel="STYLESHEET" type="text/css" href="fp_zhangcg.css">  <meta http-equiv="Content-Type" content="text/html; charset=gb2312">  <meta name=