ホームページ >バックエンド開発 >PHPチュートリアル >OSOを模倣したフォーラム(1)_PHPチュートリアル
OSO に行ったことのある人は皆、OSO フォーラムに深い感銘を受けると思います。あなたのホームページにこのような美しいフォーラムを作りたいですか? 実際、以下では OSO フォーラムの基本的な部分だけを模倣します。
私はこのフォーラムを掲示板としてのみ使用しているため、私のフォーラムは OSO フォーラムと単純に一致すると見なすことができます。 1. 私のフォーラムでは、ユーザーはログイン後にのみ発言できます。ユーザーの ID は「cookie_user」という Cookie 変数に保存されます。 2. 私のフォーラムにはサブフォーラムがありません。3. クリック数はカウントされません。 4. OSO フォーラムの各トピックの前に、新しい投稿があるかどうかを示すアイコンをデザインしていません。 5. OSO フォーラムが提供するオプションのトピックの配置と表示期間を考慮していません。 7. メンバーの投稿ポイントに関する統計はありません。 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,/*speech id, auto-increment field*/
name varchar(12) NOT NULL,/*topic Creator*/
type tinyint NOT NULL,/*type 0-reply; 1-main post*/
テーマ varchar(50) NULL,/*theme*/
コンテンツ blob NOT NULL,/*content*/
icon tinyint NOT NULL,/*絵文字 */
time_open datetime not NULL,/*トピック作成時刻*/
time_close datetime not NULL,/*最終返信時刻*/
Answer_count int not null,/*number of replies*/
Answer_name varchar(12) not null ,/ *最後の返信者*/
main_id bigint null,/*メイン投稿 ID*/
PRIMARY KEY (id)/**/
);
プログラムには 5 つの php ソース コードが含まれています: connect.inc.php、php。 、read.php、post.php、reply.php、post_end.php
connect.inc.php: (データベースへの接続に使用されます)
$dbhostname = "localhost";
$dbpassword = "";
$dbName = "";
MYSQL_CONNECT($dbhostname, $dbpassword) OR DIE("データベースに接続できません")
@mysql_select_db( "$dbName"); " データベースを選択できません");
?>
faq.php: (トピック リストの表示に使用されます)
href="post.php"> border=0 src="mypic/post.gif"> | ||||
主 题 | color=#ffffff>创建人 | color=#ffffff>回复 | color=#ffffff>回复人 | color=#ffffff>最終回复時間 |
".$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 $row['name']." | "; ".$ii." | ";"; echo $row['answer_name']." | "; ".$row['mydate']." | < /TR>";}