相信每一个到过 OSO 的人都会对 OSO 的论坛留下极深的印象, 这个论坛无论从那一方面来说都是比较出色的你想不想你的主页也有这么一个漂亮的论坛呢, 其实并不太复杂的, 下面我们仅从一些基本的部分来实现对 OSO 论坛的模仿
由于我仅仅是使用这个论坛作为我的留言板, 所以我的论坛可以算是 OSO 论坛的简配 1 在我的论坛中只有在用户登录后才能发言, 用户的 ID 是存在一个叫 cookie_user 的 cookie 变量中的, 2 我的论坛没有子论坛, 3 我没有统计一个主题的点击数, 4 在 OSO 论坛中每一个主题前面的表示有没有新贴子的图标我也没设计, 5 对于 OSO 论坛所提供的可选择的主题排列方式以及显示时间段我也没考虑, 6 没有会员发贴积分的统计, 7 没有版主管理论坛的功能, 8 没有贴子编辑的功能我们将在最后提到如何在我的程序基础上扩充这八项功能
首先是一个数据库的设计, 事实上一个论坛牵涉到两个数据表, 我们暂且将其命名为 userguestbook, 在 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");
- ?>
- faq.php:(用来显示主题列表)
来源: https://www.php1.cn/detail/php-0b3eff6bb9.html