ホームページ >php教程 >php手册 >OSOを模倣したフォーラム(1)

OSOを模倣したフォーラム(1)

WBOY
WBOYオリジナル
2016-06-13 12:37:45976ブラウズ


OSO を訪れたことがある人は皆、OSO のフォーラムに深い感銘を受けると思います。あなたのホームページにこのような美しいフォーラムを作りたいですか? 実際、以下では OSO フォーラムの基本的な部分だけを模倣します。
私はこのフォーラムを掲示板としてのみ使用しているため、私のフォーラムは OSO フォーラムと単純に一致すると考えることができます。 1. 私のフォーラムでは、ユーザーはログイン後にのみ発言できます。ユーザーの ID は「cookie_user」という Cookie 変数に保存されます。 2. 私のフォーラムにはサブフォーラムがありません。3. クリック数はカウントされません。 4. OSO フォーラムの各トピックの前に、新しい投稿があるかどうかを示すアイコンをデザインしていません。 5. OSO フォーラムが提供するオプションのトピックの配置と表示期間を考慮していません。 . メンバーが投稿したポイントに関する統計はありません。 8. モデレータがフォーラムを管理する機能はありません。最後に、私のプログラムに基づいてこれら 8 つの関数を拡張する方法について触れます。
まず、データベースの設計です。実際、フォーラムには 2 つのデータ テーブルが含まれており、ユーザー テーブルには登録ユーザーの情報が保存されます。作成ステートメントは次のとおりです。
create table my_user(
user_id char(12) not null,/*username*/
user_password varchar(8) not null,/*user password*/
PRIMARY KEY (user_id)
)
ゲストブックには投稿コンテンツが保存されます。作成内容は以下のとおりです。
CREATE TABLE guestbook (
id bigint DEFAULT '0' NOT NULL auto_increment,/*speak id, auto-increment field*/
name varchar(12) NOT NULL,/ *トピック作成者*/
type tinyint NOT NULL,/*type 0-reply; 1-main post*/
テーマ varchar(50) NULL,/*theme*/
コンテンツ blob NOT NULL, /*content */
icon tinyint NOT NULL,/*emoticon*/
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) /**/
);
プログラムには 5 つの php ソース コードが含まれています: connect.inc.php、faq.php、read.php、post.php、reply.php、post_end.php
connect.inc.php: (データベースへの接続に使用されます)

$dbhostname = "";
$dbpassword = ""; >$ dbName = "";
MYSQL_CONNECT($dbhostname, $dbusername, $dbpassword) OR DIE("データベースに接続できません");
@mysql_select_db( "$dbName") または die( "データベースを選択 "); " ;



src="mypic/x.js">
;TD vAlign=top>ここで発言できるのはメンバーだけです

;TABLE align=center border=0 cellPadding=1 width=100% class=body_br > $res = mysql_query($query);
$row = mysql_fetch_row($res);
$total =$row[0];

>

; %>
                     $res = mysql_query($query);  
$row = mysql_fetch_row($res);  
echo $row[0];
?>
href="post. php"> border=0
src="mypic/post.gif">




color=#ffffff>创建人
color=#ffffff>回复
color=#ffffff>回复人
color=#ffffff>最終回回時间
function TdBackColor() {
static $ColorStr;
if ($ColorStr=="#ededed") {
$ColorStr="#ededed";
} else {
$ColorStr="#ededed";
}
return($ColorStr);
}
if (!$page) $page=1;
$ysylimit=($page-1)*20;
$query = "select theme,answer_count,id,name,answer_name,DATE_FORMAT(time_close,'%Y-%m-%d') as mydate from guestbook where type=1 order by time_close DESC 制限 ".$ysylimit .",20 ";  
$res = mysql_query($query);  
for ($i=0; $i<20; $i ) {
$row = @mysql_fetch_array($res);  
if(!$row) ブレーク;
$ColorStr=TdBackColor();
echo "".$row['テーマ'];
エコー "
";
if ($row['answer_count']>5)
{echo " echo "class=small color=#666666> 分页:";
for ($j=1;$j<=($row['answer_count']-1)/5 1;$j ) echo "";  
}
echo "";  
echo "";  
echo $row['name']."";
$ii=$row['answer_count']-1;
echo "".$ii."";
echo "";  
echo $row['answer_name']."";
echo "".$row['mydate']." ";}
?>



分页
$page1=$page-1;
$page2=$ページ 1;
if ($page==1) echo "首页 前页 ";  
else echo "
首页 前页 ";  
if ($page==$totalpage) echo "後页 尾页 ";  
else echo "後页 尾页 ";  
?>
当前页:  
<選択されたオプション
$k=1;
echo "value=faq.php?page=".$k.">".$k."";
for ($k=2;$kecho "
  



声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。