首頁 >後端開發 >php教程 >模仿OSO的論壇(一)_PHP教程

模仿OSO的論壇(一)_PHP教程

WBOY
WBOY原創
2016-07-21 16:02:05996瀏覽

 
    相信每個曾經到過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 KEY (user_id)
)
guestbook中儲存的是貼文內容。其創作內容如下:
CREATE TABLE guestbook (
   id bigint DEFAULT '0' NOT NULL auto_increment,/*發言id,自增欄位*/
   name varchar(12) NOTULL,//*人*/
   type tinyint NOT NULL,/*類型0-回覆;1-主貼*/
   theme varchar(50) NULL,/*主題*/
  theme varchar(50) NULL,/*主題*/
  */
   icon tinyint NOT NULL,/*表情圖示*/
   time_open datetime not NULL,/*主題建立時間*/
   time int not null,/*回覆數*/
   answer_name varchar(12) not null,/*最後回覆者*/
   main_id bigint null,/*主貼id*/
  main_id bigint null,*主貼id*/
  /**/
);
程式包含五個php原始碼:分別是connect.inc.php,faq.php,read.php,post.php,reply.php,post_end.php
connect.inc.php:(用來連接資料庫)

$dbhostname = "localhost";  
$dbusername = "";  
$dbpass = "";
$dbName = "";  
MYSQL_CONNECT($dbhostname, $dbusername, $dbpassword) OR DIE("Unable to connect to database");
@mysql_select_db( "$dbName") or die( "Unable to select database" );  
?>


faq.php:(用來顯示主題清單)

疑難問題


      
        
        
/SCRIPT>
  

    
只有會員才能在此發言

      
        
          
          
               color=#ffffff>創建人 FONT> TD>
              ff     color=#ffffff>回覆者
           TD> TR>
function TdBackColor() {
  static $ColorStr;
  if ($ColorStr=="#ededed") {
    $ColorStr="#dedede";
  } else {
    $ColorStr="#ededed";
  }
  return($ColorStr);
}
if (!$page) $page=1;
$ysylimit=($page-1)*20;
$query = "從留言簿中選擇主題,answer_count,id,name,answer_name,DATE_FORMAT(time_close,'%Y-%m-%d')作為mydate,其中type=1按time_close DESC排序" . $ysylimit .",20";  
$res = mysql_query($query);  
for ($i=0; $i  $row = @mysql_fetch_array($res);  
  if(!$row) 中斷;
  $ColorStr=TdBackColor();
  echo "
";  
    echo "";  
  
  $ii=$row['answer_count']-1;
  echo "".$ii."";
   echo "";  
  echo $row['answer_name']."";
 echo "".$row['mydate']."
";}
?>

                                          $query = "select count(*) from guestbook where    $res = mysql_query($query);  
                     $total=$row[0];
                     $totalpage=floor($total/20) 1;                      ?>
     =19%>貼文數:

                         $query = "select count(*) from guestbook";
                     $res = mysql_query($query);  
                     $row = mysql_fetch_row($res);  
                     echo $row[0];
                     ? >
                      href="post.php">            border=0  
         ¢        主  
            題
".$row['主題'];
    回顯「
」;
    if ($row['answer_count']>5)
    {echo "   echo "class=small color=#666666>  分頁:";
    for ($j=1;$j";  
    }
    echo "

      

分頁
$page1=$page-1;
$page2=$第1頁;
if ($page==1) echo "首頁 前頁 ";  
else echo "首頁 前頁「;  
if ($page==$totalpage ) echo "後頁 尾頁 ";  
else echo "後頁 尾頁 ";  
? >
當前頁: ;  轉到第  
            



www.bkjia.comtruehttp: //www.bkjia.com/PHPjc/316720.htmlTechArticle相信每一個到過OSO的人都會對OSO的論壇留下極深的印象,這個論壇無論從這方面來說都是比較出色的。你想不想你的首頁也有這麼漂...
陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn