金沙注册网站-新金沙官网 新金沙官网 新金沙官网模仿OSO的论坛

新金沙官网模仿OSO的论坛

 
    相信每一个到过OSO的人都会对OSO的论坛留下极深的印象,这个论坛无论从那一方面来说都是比较出色的。你想不想你的主页也有这么一个漂亮的论坛呢,其实并不太复杂的,下面我们仅从一些基本的部分来实现对OSO论坛的模仿。
    由于我仅仅是使用这个论坛作为我的留言板,所以我的论坛可以算是OSO论坛的简配。1、在我的论坛中只有在用户登录后才能发言,用户的ID是存在一个叫“cookie_user”的cookie变量中的,2、我的论坛没有子论坛,3、我没有统计一个主题的点击数,4、在OSO论坛中每一个主题前面的表示有没有新贴子的图标我也没设计,5、对于OSO论坛所提供的可选择的主题排列方式以及显示时间段我也没考虑,6、没有会员发贴积分的统计,7、没有版主管理论坛的功能,8、没有贴子编辑的功能。我们将在最后提到如何在我的程序基础上扩充这八项功能。
    首先是一个数据库的设计,事实上一个论坛牵涉到两个数据表,我们暂且将其命名为user、guestbook,在user表中存储的是注册用户的信息。其创建语句如下:
create table my_user(
user_id         char(12)  not null,/*用户名*/
user_password    varchar(8)    not null,/*用户密码*/
PRIMARY KEY (user_id)
)
guestbook中储存的是贴子内容。其创建内容如下:
CREATE TABLE guestbook (
   id bigint DEFAULT ‘0’ NOT NULL
auto_increment,/*发言id,自增字段*/
   name varchar(12) NOT NULL,/*主题创建人*/
   type tinyint NOT NULL,/*类型0-回复;1-主贴*/
   theme varchar(50) NULL,/*主题*/
   content blob NOT NULL,/*内容*/
   icon tinyint NOT NULL,/*表情图标*/
   time_open datetime not NULL,/*主题创建时间*/
   time_close datetime not NULL,/*最后回复时间*/
   answer_count int not null,/*回复数*/
   answer_name varchar(12) not null,/*最后回复人*/
   main_id bigint null,/*主贴id*/
   PRIMARY KEY (id)/**/
);
程序包含五个php源代码:分别是connect.inc.php,faq.php,read.php,post.php,reply.php,post_end.php
connect.inc.php:(用来连接数据库)
<?
$dbhostname = “localhost”;  
$dbusername = “”;  
$dbpassword = “”;
$dbName = “”;  
MYSQL_CONNECT($dbhostname, $dbusername, $dbpassword) OR DIE(“Unable to
connect to database”);
@mysql_select_db( “$dbName”) or die( “Unable to select database”);  
?>

read.php(用来显示相关主题内容)
<HTML><HEAD><TITLE>疑难问题</TITLE>
<LINK href=”mypic/style.css” rel=STYLESHEET
type=text/css></HEAD>
<BODY bgColor=#cccc99 bottomMargin=0 leftMargin=0 topMargin=0
marginwidth=”0″ marginheight=”0″>
      <TABLE border=0 cellPadding=0 cellSpacing=0 width=”100%”
class=body_br >
        <TBODY>
  <TR>
    <TD vAlign=top><BR>
      <TABLE align=center border=0 cellPadding=3 cellSpacing=0
width=100%>
        <TBODY>
          <TD>主 题:<FONT class=mid  
          color=#993333><B>
<?php
include “connect.inc.php”;
$query = “select * from guestbook where id=”.$theme_id;
$res = mysql_query($query);  
$row = mysql_fetch_array($res);  
echo $row[‘theme’];
?>
</B></FONT></TD></tr><tr>
          <TD align=middle vAlign=top width=100%><A  
            href=”post.php”><IMG  
            border=0 src=”mypic/post.gif”></A>  
            <A href=”reply.php?theme_id=<?php echo $row[‘id’]
?>”><IMG  
            border=0  
            src=”mypic/reply.gif”></A> <A  
            href=”faq.php?page=1″><IMG  
            border=0  
          src=”mypic/theme.gif”></A></TD></TR>
<?php
   if ($row[‘answer_count’]>5)
    {echo “<TR> <TD>分 页:<FONT class=mid >”;
    for ($j=1;$j<=($row[‘answer_count’]-1)/5+1;$j++) {
       if ($j==$page) echo “<FONT color=#999999>
[“.$j.”]</FONT> </A>”;  
       else echo “<A
href=’read.php?theme_id=”.$row[‘id’].”&page=”.$j.”‘[“.$j.”]</FONT> </A>”;  
       }}
      echo ”   共有帖子”.$row[‘answer_count’].”个</TD>”;
$this_id=$row[‘id’];
$query = “select id from guestbook where id<“.$this_id.” and type=1
order by id DESC”;
$res = mysql_query($query);  
$row = mysql_fetch_row($res);  
$pre_id=$row[0];
$query = “select id from guestbook where id>”.$this_id.” and type=1
order by id”;
$res = mysql_query($query);  
$row = mysql_fetch_row($res);  
$next_id=$row[0];
?>
</TR>
</TBODY></TABLE>
      <TABLE align=center border=0 cellPadding=4 cellSpacing=2
width=100%>
        <TBODY>
        <TR>
          <TD align=middle bgColor=#6f6f6f width=”20%”><FONT
color=#ffffff>作  
            者</FONT></TD>
          <TD align=middle bgColor=#6f6f6f width=”80%”><FONT
color=#ffffff>内  
            容</FONT></TD></TR>
<?php
$query = “select * from guestbook where main_id=”.$theme_id.” or
id=”.$theme_id.” order by time_open DESC limit
“.strval(($page-1)*5).”,5″;
$res = mysql_query($query);  
function TdBackColor() {
  static $ColorStr;
  if ($ColorStr==”#ededed”) {
    $ColorStr=”#dedede”;
  } else {
    $ColorStr=”#ededed”;
  }
  return($ColorStr);
}
for ($i=1;$i<=5;$i++)
{$row = @mysql_fetch_array($res);  
if(!$row) break;  
$ColorStr=TdBackColor();
echo “<TR>”;
echo “<TD align=middle bgColor=”.$ColorStr.” vAlign=top
width=’20%’><FONT”;  
echo “class=mid><B>”;  
echo $row[‘name’].”</B></FONT></TD>”;
echo “<TD bgColor=”.$ColorStr.” vAlign=top width=’80%’>”;
echo “<TABLE border=0 cellPadding=0 cellSpacing=0
width=’100%’>”;
echo “<TBODY>”;
echo “<TR>”;
echo “<TD align=middle width=30><IMG align=ABSCENTER
border=0”;  
echo ” src=’mypic/icon”.$row[‘icon’].”.gif’></TD>”;
echo “<TD><FONT color=#336699>发表于:
“.$row[‘time_open’].”</FONT></TD>”;
echo “<TD align=right></TD></TR>”;
echo “<TR>”;
echo “<TD colSpan=3>”;
echo “<HR SIZE=1>”;
echo
“</TD></TR></TBODY></TABLE>”.$row[‘content’].”</TD></TR>”;
echo “<TR>”;
}
?>      
        <TR align=right bgColor=#6f6f6f>
          <TD> </TD>
          <TD><A  
            href=”read.php?theme_id=<?php echo
$pre_id?>&page=1″><FONT  
            color=#ffffff>上一个主题</FONT></A>    <A  
            href=”read.php?theme_id=<?php echo
$next_id?>&page=1″><FONT  
            color=#ffffff>下一个主题</FONT></A>
</TD></TR></TBODY></TABLE>
      <HR SIZE=1 width=100%>
<BR></TD></TR>
</TBODY></TABLE>
</FORM>
</html>

相关文章

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图