上面已经介绍了系统的关键技术,下面对具体实现进行详解;
1.开发时,经常需要利用一个配置文件来存储系统的参数,例如:数据库连接信息等。这样可以提高系统的可移植性,当系统的配置发生变化时,例如:更改服务器,就不用修改散布在各个页面的数据库连接信息,而只需修改配置文件即可。
下面创建一个系统配置文件sys_conf.inc,用来保存数据库连接信息:
1 2
可以通过require()或include()函数在其他页面引用sys_conf.inc文件,从而得到数据库配置信息。
其中第4-7行分别定义了$DBHOST、$DBUSER、$DBPWD、$DBNAME,分别用来保存数据库服务器名、登陆用户名、密码和数据库名。大家可根据需要自行修改。
2.登陆界面(login.php)
用户登录 欢迎来到My聊天室
请输入您的昵称
注:11-13行定义了一个表单,其中包括昵称输入框nick,提交按钮“登录”,当用户单击该按钮时,通过form的action属性,页面将nick输入框中的信息使用post方式提交至聊天主页面main.php
3.聊天室主页面(main.php):
需要使用HTML框架技术,把整个浏览器分为几个独立的页面,每个页面成为其中一个框架,并相互独立,这样页面就不会随着显示留言页面一起自动刷新了。
My聊天室
第10-13行使用了框架,使整个浏览器窗口包含两个页面,分别是留言显示页面chat_display.php和用户发言页面speak.php。这样,对于自动刷新的问题,就可以独立放在chat_display.php。
4.显示发言页面(chat_display.php)
1 2 3 4显示用户留言 5 6 7 8 ";25 }26 27 //清除库中过时的数据28 @mysql_data_seek($result,$rows-20); //移动记录指针到前20笔记录29 list($limtime)=mysql_fetch_row($result);30 $str="DELETE FROM chat WHERE create_time<'$limtime';" ;31 $result=mysql_query($str,$link_id); //执行查询字符串,库中只留最后20个记录32 33 //关闭数据库34 mysql_close($link_id);35 ?>36 37
第9行,通过require_once()函数来引入系统配置文件,以使用数据库连接信息。
第11-15行,使用mysql_query()函数进行数据查询,得到chat表中所有数据
第24行,按“时间+用户+发言内容”的格式将发言输出
第27-31行,删除数据库中旧的发言信息,这样可以保证数据库的存储量保持一定的值,同样是使用mysql_query()函数向服务器提交查询。
5.发言页面(speak.php)
用户的发言过程是写数据库的过程,把用户的发言信息和发言时间及用户名一起保存到chat表中。在chat_display.php上可以读取这些数据并显示出来。
1 2 3 4 530 31发言 6 7 8 25 26
第1行,使用session_start()函数初始化session库,这样就可以使用已注册的session变量user_name来得到用户的昵称了,具体的数据库获取在第18行使用全部数组$_SEESSION实现。
第9行,通过require_once()函数来引入系统配置文件,以使用数据库连接信息。第12-23行,实现了数据库的插入操作。
第26-29行定义了HTML表单,包含一个发言输入框text和提交按钮“发言”
至此,一个简单的聊天室制作就完成了。大家可以根据喜好做一些个性化的设计,如增加一个页面显示当前聊天室人员名单、发送表情、进一步美化页面等······