最新公告
  • 欢迎您光临波比源码,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!立即加入我们
  • PHP程序百行代码快速构建简易聊天室

    基本功能:能登陆,聊天,记录在线人数IP事件,能控制聊天的字体颜色,自动把转化聊天中网址为链接地址,能定制聊天室标题、广告信息等等。使用文本作为存储媒体,又兴趣可以参考代码,并且进行扩展。

     

    其实PHP作为快速开发的脚本语言是很棒的!

     

    ===代码===

    以下为引用的内容:
    <?php
    /**
    * 黑夜路人简易聊天室
    * 作者: heiyeluren <heiyeluren_at_163.com>
    * 创建: 2005-8-10 22:42
    * 修改: 2005-8-11 23:25
    */
    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." ] &copy; 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.knowsky.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><br>
       <marquee width=70% scrollamount=2> ".AD_MSG." </marquee>&nbsp;&nbsp;
    [当前在线:$online_sum]
       <iframe src=’".SCRIPT."?action=say’ name=say_win width=800
    height=60 scrolling=no frameborder=0>
    ";
    }

    //说话界面
    if ($action=="say")
    {
    echo "<head><title>[ ".CHAT_NAME." ]</title></head><center>
    <body bgcolor=#C4BFB9 style=’font-size:12px;’>
      <form action=".SCRIPT."?action=save method=post name=chat
    onSubmit=’return check()’>
      [".$_SESSION[‘username’]."]说:<input type=text size=80
    maxlength=500 name=chatmsg style=’ background-color:#99CC99;
    width:550px; height:22px; border:1px solid:#000000′>
      <select name=usercolor>
      <OPTION selected style=’COLOR: #000000′ value=’000000′>默认颜色</OPTION>
      <OPTION style=’COLOR: #000000′ value=’#000000′>黑色沉静</OPTION>
      <option style=’COLOR: #ff0000′ value=’#FF0000′>红色热情</option>
      <option style=’COLOR: #0000ff’ value=’#0000FF’>蓝色开朗</option>
      <option style=’COLOR: #ff00ff’ value=’#FF00FF’>桃色浪漫</option>
      <option style=’COLOR: #009900′ value=’#009900′>绿色青春</option>
      <option style=’COLOR: #009999′ value=’#009999′>青色清爽</option>
      <option style=’COLOR: #990099′ value=’#990099′>紫色拘谨</option>
      <option style=’COLOR: #990000′ value=’#990000′>暗夜兴奋</option>
      <option style=’COLOR: #000099′ value=’#000099′>深蓝忧郁</option>
      <option style=’COLOR: #999900′ value=’#999900′>卡其制服</option>
      <option style=’COLOR: #ff9900′ value=’#FF9900′>镏金岁月</option>
      <option style=’COLOR: #0099ff’ value=’#0099FF’>湖波荡漾</option>
      <option style=’COLOR: #9900ff’ value=’#9900FF’>发亮蓝紫</option>
      <option style=’COLOR: #ff0099′ value=’#FF0099′>爱的暗示</option>
      <option style=’COLOR: #006600′ value=’#006600′>墨绿深沉</option>
      <option style=’COLOR: #333333′ value=’#333333′>灰色轨迹</option>
      <option style=’COLOR: #999999′ value=’#999999′>伦敦灰雾</option>
      </select>
      <input type=submit value=’说话’ style=’background-color:#ffffff’>
    <a href=".SCRIPT."?action=logoff title=退出聊天室
    target=_top onclick=’return confirm("你确定要退出聊天室吗?")’>退出</a>
      </form>
      <script>function check(){if(document.chat.chatmsg.value==”)
    {;alert(‘请输入聊天信息!’);return false;}return true;}</script>
      ";
    }

    //保存说话
    if ($action=="save")
    {
    if ($_POST[‘chatmsg’]!="") {
      save_chat($_POST[‘chatmsg’], $_SESSION[‘username’], $_POST[‘usercolor’]);
    }
    header("location:".SCRIPT."?action=say");
    }

    //显示聊天记录
    if ($action=="show")
    {
    echo "<body style=’font-size:12px’ onload=’scrollit()’>";
    echo "<META HTTP-EQUIV=REFRESH
    CONTENT=’".REF_TIME.";URL=".SCRIPT."?action=show’>";
    if (file_exists(CHAT_NOTE)) {
      $chat_msg = @file_get_contents(CHAT_NOTE);
      echo $chat_msg;
    } else {
      echo "目前没有人说话";
    }
    }

    //退出聊天室
    if ($action=="logoff")
    {
    unset($_SESSION[‘username’]);
    session_destroy();
    header("location:".SCRIPT);
    }

    /* 基本函数 */

    //保存聊天记录函数
    function save_chat($msg, $user, $color)
    {
    if (!$fp = fopen(CHAT_NOTE, "a+")) {
      die(‘创建聊天记录文件失败, 请检查是否有权限.’);
    }
    $msg = htmlspecialchars($msg);
    $msg = preg_replace(‘/([http|ftp://])*([a-zA-])
    +.([a-zA-Z0-9_-])+.([a-zA-Z0-9_-])+(a-zA-Z0-9_)*/’, ‘
    <a href= target=_blank></a>’, $msg);
    $msg = preg_replace(‘/([a-zA-Z0-9_.])+@([a-zA-Z0-9-])
    +.([a-zA-Z0-9-]{2,4})+/’, ‘<a href=mailto:></a>’, $msg);
    $msg = date(‘H:i:s’)." [".$user."]说:
    <font color=’".$color."’>".$msg."</font><br>";
    if (!fwrite($fp, $msg)) {
      die(‘写入聊天记录失败.’);
    }
    fclose($fp);
    }
    //写在线人信息
    function save_online($user, $ip)
    {
    if (!$fp = fopen(ONLINE_LIST, "a+")) {
      die("创建在线列表文件失败, 请检查是否有权限.");
    }
    $user = str_replace("|", "", $user);
    $line = $user."|".$ip."|".time()."";
    if (!fwrite($fp, $line)) {
      die("写入在线列表失败.");
    }
    fclose($fp);
    }
    //获取在线人数
    function get_online_sum()
    {
    if (file_exists(ONLINE_LIST)) {
      $online_msg = file(ONLINE_LIST);
      return count($online_msg);
    } else {
      return 0;
    }
    }
    //获取当前登陆用户IP
    function get_client_ip()
    {
    if ($_SERVER[‘REMOTE_ADDR’]) {
      $cip = $_SERVER[‘REMOTE_ADDR’];
    } elseif (getenv("REMOTE_ADDR")) {
      $cip = getenv("REMOTE_ADDR");
    } elseif (getenv("HTTP_CLIENT_IP")) {
      $cip = getenv("HTTP_CLIENT_IP");
    } else {
      $cip = "unknown";
    }
    return $cip;
    }
    ?>

    波比源码 – 精品源码模版分享 | www.bobi11.com
    1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
    2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
    3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
    4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
    5. 如有链接无法下载、失效或广告,请联系管理员处理!
    6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需!
    7. 如遇到加密压缩包,请使用WINRAR解压,如遇到无法解压的请联系管理员!

    波比源码 » PHP程序百行代码快速构建简易聊天室

    常见问题FAQ

    免费下载或者VIP会员专享资源能否直接商用?
    本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
    提示下载完但解压或打开不了?
    最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。若排除这种情况,可在对应资源底部留言,或 联络我们.。
    找不到素材资源介绍文章里的示例图片?
    对于PPT,KEY,Mockups,APP,网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。
    波比源码
    一个高级程序员模板开发平台
    升级波友尊享更多特权立即升级