|
- 无聊情况下,看能用比较少的代码构建聊天室,一开始写了整整100行把聊天室内完成,后来觉得很多功能没有,又重新修改,加了不少代码。其实不利用特别复杂的技术,比如模板、数据库等等,一样能做比较不错的聊天室,适合个人使用。
- 基本功能:能登陆,聊天,记录在线人数IP事件,能控制聊天的字体颜色,自动把转化聊天中网址为链接地址,能定制聊天室标题、广告信息等等。使用文本作为存储媒体,又兴趣可以参考代码,并且进行扩展。
- 其实PHP作为快速开发的脚本语言是很棒的!
- ===代码===
- <?php
- /**
- * 黑夜路人简易聊天室
- * 作者: heiyeluren
- * 再次发布: PHP100中文网
- */
- error_reporting(7);
- session_start();
- header('ContentType:text/html;charset=gb2312');
- define('SCRIPT', $_SERVER['SCRIPT_NAME']);
- define('CHAT_NOTE', './chat.txt');
- define('ONLINE_LIST', './online.txt');
- define('REF_TIME', 5);
- define('CHAT_NAME', '黑夜路人聊天室');
- define('AD_MSG', '今天是中国情人节, 祝大家情人节快乐!!');
- //获取值
- if (isset($_GET['action']) && !empty($_GET['action'])) {
- $action = $_GET['action'];
- }
- //如果已经登陆那么直接跳到聊天界面
- if (!isset($_GET['action']) && isset($_SESSION['username'])) {
- header('location:'.SCRIPT.'?action=chat');
- }
- //登陆提示
- if (!isset($_GET['action']))
- {
- if (!session_is_registered('username'))
- {
- echo ' <p><h3 align=center>[ '.CHAT_NAME.' ] © 2005</h3></p>
- <p align=center>
- <form action='.SCRIPT.'?action=login method=post>
- 呢称: <input type=text size=25 maxlength=30 name=login_user>
- <input type=submit value=聊天>
- </form></p>
- ';
- exit;
- }
- }
- //校验登陆
- if ($action=='login')
- {
- if (isset($_POST['login_user']) && !empty($_POST['login_user'])) {
- $username = $_POST['login_user'];
- } else {
- $username = '游客';
- }
- session_register('username');
- save_online($username, get_client_ip());
- header('location:'.SCRIPT.'?action=chat');
- }
- //开始聊天www.php100.com
- if ($action=='chat')
- {
- $online_sum = get_online_sum();
- echo '<head><title>[ '.CHAT_NAME.' ]</title></head><center><body bgcolor=#C4BFB9 style='font-size:12px;'>
- <div style='border:1px solid #999966; width:802px;height:450'><iframe src=''.SCRIPT.'?action=show' name=show_win width=800 height=450 scrolling=auto frameborder=0></iframe></div>
- <marquee width=70% scrollamount=2> '.AD_MSG.' </marquee> [当前在线:$online_sum]
- <iframe src=''.SCRIPT.'?action=say' name=say_win width=800 height=60 scrolling=no frameborder=0>
- ';
- }
复制代码 |
|