• 技术文章 >后端开发 >php教程

    [分享] 《魔镜在线》一个在线随机聊天网站源码,该如何处理

    2016-06-13 13:52:39原创387
    [分享] 《魔镜在线》一个在线随机聊天网站源码
    程序使用PHP+MySQL,jQuery实现Ajax,页面布局用的DIV+CSS,并有一个VB写的客户端程序。

    原演示地址:http://ask.n9sky.com/MagicMirror/ (现在不能访问了)

    现在贴出部分代码:

    server.php 主要的操作处理都在这个文件
    PHP code
     
    $do = @$_GET['do'];
    if ('' == $do)
    {
    exit('Missing Action');
    }
    require 'config.php';
    require 'dll.php';
    session_start();
    // check session
    if ('' == $_SESSION['sid']) exit('登录超时,请关闭重试!');
    switch ($do)
    {
    case 'init':
    // check user && update
    dll::import('mysql');
    $db = new mysql();
    $db->connect($dbs['server'], $dbs['user'], $dbs['password']);
    $db->database($dbs['database']);
    // update
    $rs = $db->update(DBPrefix.'user', 'sid="'.$_SESSION['sid'].'"');
    $rs->set('client_to', '');
    $rs->set('role', RoleOnline);
    $rs->set('last_access_time', time());
    $rs->setfunc('login_count', 'login_count+1');
    $rs->set('last_login_time', time());
    $ip = $_SERVER['REMOTE_ADDR'];
    $ipx = explode('.', $ip);
    $iplong =
    $ipx[0] * 16777216 +
    $ipx[1] * 65536 +
    $ipx[2] * 256 +
    $ipx[3];
    $rs->set('last_login_ip', $iplong);
    if (!$rs->update())
    {
    // add new
    $rs = $db->insert(DBPrefix.'user');
    $rs->set('sid', $_SESSION['sid']);
    $rs->set('client_to', '');
    $rs->set('role', RoleOnline);
    $rs->set('last_access_time', time());
    $rs->set('login_count', 1);
    $rs->set('last_login_time', time());
    $rs->set('last_login_ip', $iplong);
    $rs->insert();
    }
    $db->close();
    // display init page
    display('init.html');
    break;
    case 'status':
    dll::import('mysql');
    // access $dbs
    global $dbs;
    $db = new mysql();
    $db->connect($dbs['server'], $dbs['user'], $dbs['password']);
    $db->database($dbs['database']);
    // update access
    update_access($db);
    // import mysql.class
    display('server.status.html');
    $db->close();
    break;
    case 'work':
    $mode = $_GET['mode'];
    // update work mode
    dll::import('mysql');
    $db = new mysql();
    $db->connect($dbs['server'], $dbs['user'], $dbs['password']);
    $db->database($dbs['database']);
    // update
    $rs = $db->update(DBPrefix.'user', 'sid="'.$_SESSION['sid'].'"');
    switch ($mode)
    {
    case 'answer':
    $rs->set('role', RoleAnswer);
    break;
    case 'asker':
    $rs->set('role', RoleAsker);
    break;
    case 'chater':
    $rs->set('role', RoleChater);
    break;
    case 'offline':
    $rs->set('role', RoleOffline);
    $rs->set('client_to', '');
    // delete input status cache
    @unlink(dirname('.').'/cache/'.$_SESSION['sid'].'.input.status');
    // clear session
    unset($_SESSION);
    break;
    }
    $rs->set('last_access_time', time());
    $rs->update();
    $db->close();
    // display mode page
    if ($mode != 'offline')
    {
    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    专题推荐:39 gt set update session
    上一篇: 关于字符串的操作,可能需要用到正则,觉得很复杂解决思路 下一篇: php5.3和mssql的有关问题等确认
    Web大前端开发直播班

    相关文章推荐

    • 十天学会php之第三天_php基础• php截取字符串函数分享_PHP• php中session与cookie的比较_PHP• php实现webservice实例_PHP• php将csv文件导入到mysql数据库的方法_PHP

    全部评论我要评论

  • 取消发布评论发送
  • 1/1

    PHP中文网