《精通PHP+MySQL应用开发》中的简易聊天室的代码,在我机器上测试成功,个别地方有修改。
系统 ubuntu 9.04
/////////////db.sql数据库配置文件/////////
CREATE DATABASE my_chat ;
CREATE TABLE chat (
cid INT NOT NULL AUTO_INCREMENT ,
author VARCHAR( 50 ) NOT NULL ,
create_time TIME NOT NULL ,
text BLOB NOT NULL ,
PRIMARY KEY ( cid )
);
//////////////login.php/////////
用户登录
欢迎来到聊天室
请输入你的昵称
//////////main.php//////////////
session_start();
$user_name=$_POST["nick"];
session_register("user_name");
?>
聊天室
////////////speak.php//////////////////
发言
require_once("sys_conf.inc"); //系统配置文件,包含数据库配置信息
//发言
if(isset($_POST["text"]))
{
//连接数据库
$link_id=mysql_connect($DBHOST,$DBUSER,$DBPWD);
mysql_select_db($DBNAME); //选择数据库my_chat
$time=date("h:i:s");
$author=$_SESSION["user_name"];
$text=$_POST["text"];
$str="INSERT INTO chat(create_time,author,text) values('$time','$author','$text')" ;
mysql_query($str,$link_id); //送出发言到数据库
mysql_close($link_id);
}
?>
///////////chat_display.php////////////////////
显示用户留言
require_once("sys_conf.inc"); //系统配置文件,包含数据库配置信息
//连接数据库
$link_id=mysql_connect($DBHOST,$DBUSER,$DBPWD);
mysql_select_db($DBNAME); //选择数据库my_chat
$str="select * from chat ORDER BY create_time;"; //按时间查找所有聊天信息
$result=mysql_query($str, $link_id); //执行查询
$rows=mysql_num_rows($result); //取得查询结果的记录笔数
//取得最后15个发言,并显示
@mysql_data_seek($result,$rows-15); //移动记录指针到前15笔记录
if ($rows<15) $l=$rows; else $l=15; //若记录总数小于15,则最多为该记录数
for ($i=1;$i<=$l;$i++)
{
list($cid,$author,$create_time,$text)=mysql_fetch_row($result);
echo $create_time; echo " ";echo "[".$author."]"; echo "说到:" ; echo $text; echo "
";
}
//清除库中过时的数据
@mysql_data_seek($result,$rows-20); //移动记录指针到前20笔记录
list($limtime)=mysql_fetch_row($result);
$str="DELETE FROM chat WHERE create_time<'$limtime';" ;
$result=mysql_query($str,$link_id); //执行查询字符串,库中只留最后20个记录
//关闭数据库
mysql_close($link_id);
?>
/////////////sys_conf.inc系统配置文件////////////////////
$DBHOST="localhost";
$DBUSER="root";
$DBPWD="ivan";
$DBNAME="my_chat";
?>
阅读(981) | 评论(0) | 转发(0) |