📄 main.php
字号:
<?php
session_start();
include "include/query.php";
include "include/functions.php";
if(!verifyMember(session_id(),isset($_SESSION["username"])?$_SESSION["username"]:""))
{
header("location:notice.php?id=".not_login);
exit;
}
$db = new db_query;
$db->connect();
$onlineResult = $db->query("select * from `onlinelist` where `roomid` = '{$_SESSION["roomid"]}' order by id asc");
$result = $db->query("select `id` from `messages` order by `id` desc limit 1");
if($db->numrows($result))
$messageid = $db->result($result,0,"id");
else
$messageid = 0;
//取得聊天室配置信息
$roomName = $db->result($db->query("select `room_name` from `rooms` where `id` = '{$_SESSION["roomid"]}'"),0,"room_name");
$configResult = $db->query("select * from `config`");
while($configRow = $db->fetcharray($configResult))
{
$config[$configRow["name"]] = $configRow["value"];
}
$roomResult = $db->query("select * from `rooms` where `id` = '{$_SESSION["roomid"]}'");
$roomRow = $db->fetchArray($roomResult);
//尝试获取是否有该用户的留言
$guestbookResult = $db->query("select * from `guestbook` where `to_user` = '{$_SESSION["username"]}' and `readed` = 0");
$totalGuestbookRows = $db->numrows($guestbookResult);
?>
<html>
<head>
<title>天龙聊天室</title>
<meta http-equiv="pragma" content="no-cache">
<META http-equiv="Content-Type" content="text/html;charset=gb2312">
</head>
<!--
天龙聊天室 版本1.0.0 功能强大的 PHP 聊天室
本程序由傲天龙(aotianlong@hotmail.com,qq:3697006)所写!
对于个人可以免费使用,您可以访问http://aotianlong.yeah.net来得到作者对该程序的技术支持
-->
<script language="javascript">
//聊天室配置
var lastContent = "";
var room_grade = <?=$roomRow["grade"]?>;
var masters = "<?=$roomRow["masters"]?>";
var room_maxonline = <?=$roomRow["maxonline"]?>;
var chatroom_name = "<?=addslashes($config["chatroom_name"])?>";
var message_leave = "<?=addslashes($config["message_leave"])?>";
var message_login = "<?=addslashes($config["message_login"])?>";
var message_logout = "<?=addslashes($config["message_logout"])?>";
var message_warn = "<?=addslashes($config["message_warn"])?>";
var message_bomb = "<?=addslashes($config["message_bomb"])?>";
var message_lock = "<?=addslashes($config["message_lock"])?>";
var message_unlock = "<?=addslashes($config["message_unlock"])?>";
var message_clear = "<?=addslashes($config["message_clear"])?>";
var message_kick = "<?=addslashes($config["message_kick"])?>";
var message_warning_out = "<?=addslashes($config["message_warning_out"])?>";
var message_changeroom = "<?=addslashes($config["message_changeroom"])?>";
var chatroom_affiche = "<?=addslashes($config["chatroom_affiche"])?>";
var chatroom_welcome = "<?=addslashes($config["chatroom_welcome"])?>";
var title_interval = <?=$config["title_interval"]?>;
var chatroom_roomname = "<?=addslashes($roomName)?>";
var enable_title = <?=$config["enable_title"]?>;
var enable_picture = <?=$config["enable_picture"]?>;
var say_maxlength = <?=$config["say_maxlength"]?>;
var say_interval = <?=$config["say_interval"]?>;
var refresh_interval = <?=$config["refresh_interval"]?>;
var username = "<?=$_SESSION["username"]?>";
var lastSayTime = 0;
var lastTitleTime = 0;
var messageid = <?=$messageid?>;
var userrank = <?=$_SESSION["userrank"]?>;
var roomid = <?=$_SESSION["roomid"]?>;
var max_nosay_time = <?=$config["max_nosay_time"]?>*60;
var serverTime = "<?=date('H:i:s')?>";
var notice_show_time = <?=$config["notice_show_time"]?>;
var chatroom_default_split = <?=$config["chatroom_default_split"]?>;
//styels
var page_bgcolor = "<?=$config["page_bgcolor"]?>";
var style_inputsayframe_background_color = "<?=$config["style_inputsayframe_background_color"]?>";
var style_inputsayframe_background_image = "<?=$config["style_inputsayframe_background_image"]?>";
var style_showmessageframe_background_color = "<?=$config["style_showmessageframe_background_color"]?>";
var style_showmessageframe_background_image = "<?=$config["style_showmessageframe_background_image"]?>";
var style_onlinelistframe_background_color = "<?=$config["style_onlinelistframe_background_color"]?>";
var style_onlinelistframe_background_image = "<?=$config["style_onlinelistframe_background_image"]?>";
var style_titleframe_background_color = "<?=$config["style_titleframe_background_color"]?>";
var style_titleframe_background_image = "<?=$config["style_titleframe_background_image"]?>";
var title_from = "<?=$roomRow["title_from"]?>";
var title_time = "<?=$roomRow["title_time"]?>";
var title_content = "<?=$roomRow["title_content"]?>";
var array_colors = new Array();
//发言颜色
array_colors[0] = new Array("#0088FF","#0000FF","#000088","#888800","#008888","#008800","#8888FF","#AA00CC","#8800FF","#888888","#CCAA00","#FF8800","#FF0088","#FF00FF","#000000");
array_colors[1] = new Array("海蓝","亮蓝","深蓝","黄绿","蓝绿","橄榄","淡紫","紫色","蓝紫","灰色","土黄","金黄","玫瑰","紫红","黑色");
var array_face = new Array("无表情","温柔","微笑","同情","依恋","神秘","幸灾乐祸","傻忽忽","很无辜","慢条斯理","不精打彩","严肃","生气","动情","晦气","气愤","伤心","羞涩","激动","兴奋","窘迫","幸福","不高兴","天真","阴险");
var say_enable_filter = <?=$config["say_enable_filter"]?>;
var say_filter = "<?=$config["say_filter"]?>";
document.title = username + " 在 --" + chatroom_name;
var isMaster = false;
if(masters!="")
{
var arrMasters = masters.split(",");
for(var tmp_fi=0;tmp_fi<arrMasters.length;tmp_fi++)
{
if(arrMasters[tmp_fi]==username)
{
isMaster = true;
}
}
}
//是否有留言?
var guestbook = <?=$totalGuestbookRows?>;
//为Array对象写一个deleteItem()方法
var xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
var url = window.location.href;
var urlpath = url.substr(0,url.lastIndexOf("\/")+1);
var pingbilist = new Array();
function isDirty(str)
{
var f = say_filter.split(",");
for(var i=0;i<f.length;i++)
{
if(str.indexOf(f[i])>=0)
return true;
}
return false;
}
Array.prototype.deleteItem = delete_array;
function delete_array(index)
{
var length = this.length;
var value = this[index];
delete this[index];
var newArray = this.slice(0,index).concat(this.slice(index+1,length));
return newArray;
}
function savedSays()
{
this.arrSays = new Array();
this.maxSavedSays = 50;
this.nowPosition = 0;
this.addSays = say_add;
this.moveNext = say_movenext;
this.movePrev = say_moveprev;
this.getItem = say_getItem;
this.state = 0;
}
function say_add(str)
{
if(this.arrSays.length<=this.maxSavedSays)
{
this.arrSays[this.arrSays.length] = str;
this.nowPosition = this.arrSays.length;
this.state = 1;
}
else
{
this.arrSays = this.arrSays.deleteItem(0);
this.arrSays[this.arrSays.length] = str;
this.state = 1;
}
}
function say_movenext()
{
if(this.nowPosition==this.arrSays.length)
return;
this.nowPosition++;
}
function say_moveprev()
{
if(this.nowPosition==1)
return;
if(this.state)
{
this.state = 0;
return;
}
this.nowPosition--;
}
function say_getItem()
{
if(this.arrSays.length)
{
if(this.nowPosition==this.arrSays.length+1||this.nowPosition==0)
{
if(this.nowPosition==this.arrSays.length+1)
{
return (this.arrSays[this.arrSays.length-1]);
}
else
{
return (this.arrSays[0]);
}
}
else
{
return (this.arrSays[this.nowPosition-1]);
}
}
else
{
return "";
}
}
var Sayed = new savedSays();
function NameList()
{
this.nameLists = new Array();
this.genders = new Array();
this.addName = namelist_addName;
this.delName = namelist_delName;
this.length = namelist_length;
this.write = namelist_write;
this.getItem = namelist_getItem;
this.getGenderItem = namelist_getGenderItem;
}
function namelist_getItem(index)
{
return this.nameLists[index];
}
function namelist_getGenderItem(index)
{
return parseGender(this.genders[index])[0];
}
function namelist_addName(name,gender)
{
this.genders[this.genders.length] = gender;
this.nameLists[this.nameLists.length]= name;
}
function namelist_delName(name)
{
var len = this.nameLists.length;
for(var i=0;i<len;i++)
{
if(this.nameLists[i] == name)
{
this.nameLists = this.nameLists.deleteItem(i);
this.genders = this.genders.deleteItem(i);
}
}
}
function namelist_length()
{
return this.nameLists.length;
}
function namelist_write()
{
onlinelist.document.close();
onlinelist.document.open();
var str = "<html><head><Style type=text/css>body{background-color:"+style_onlinelistframe_background_color+";background-image:url('"+style_onlinelistframe_background_image+"');}a{font-size:14px;color:blue;text-decoration:none;line-height:120%;}a:hover{font-size:14px;color:red;text-decoration:underline}</style></head><body><base target='readmessage'>";
str += "<div align='center' style='font-size:14px;'>在线名单( <font color='blue'>"+this.nameLists.length+"</font> )</div><br>";
str += "<a href='javascript:parent.getFriend()'>自动推荐</a><hr>";
str += "<a href=javascript:parent.PointTo('大家')>大家</a><br>";
var genderStr = "";
for(var i=0;i<this.nameLists.length;i++)
{
var result = parseGender(parseInt(this.genders[i]))
str += "<nobr><a href='javascript:parent.PointTo(\""+this.nameLists[i]+"\")'><font color='"+result[1]+"' title='性别:"+result[0]+"'>"+this.nameLists[i]+"</font></a></nobr><br>";
}
str += "</body></html>";
onlinelist.document.write(str);
}
function parseGender(index)
{
var GirlColor = "#FF0000";
var BoyColor = "#000000";
var DontKnowColor = "#0000FF";
switch(parseInt(index))
{
case 0:
var color = DontKnowColor;
genderStr = "秘密";
break;
case 1:
var color = BoyColor;
genderStr = "男孩";
break;
case 2:
var color = GirlColor;
genderStr = "女孩";
break;
default:
var color = DontKnowColor;
break;
}
var res = new Array(genderStr,color);
return res;
}
var onlines = new NameList();
var getMessageNumber = 0;
function getMessage()
{
xmlhttp.open("get",urlpath+"readmessage.php?messageid="+messageid+"&temp="+getMessageNumber,false);
xmlhttp.send();
var result = bytes2bstr(xmlhttp.responseBody);
lastContent = result;
eval(result);
getMessageNumber ++;
}
function getFriend()
{
if(onlines.length()==1)
{
alert("系统找不到合适的人选!");
return;
}
var index = Math.floor(Math.random()*onlines.length());
if(onlines.getItem(index)==username)
{
getFriend();
return;
}
if(onlines.getItem(index)==inputmessage.document.MessageForm.to_user.value&&onlines.length()==2)
{
alert("系统找不到合适的人选!");
return;
}
var theName = onlines.getItem(index);
var res = window.confirm(" 用户:"+theName+"\n"+" 性别:"+onlines.getGenderItem(index)+"\n\n"+"系统推荐 "+theName+" 跟你聊天,您愿意吗?");
if(res)
{
inputmessage.document.MessageForm.to_user.value = theName;
}
}
function showMessageFramePreWrite()
{
var str = "<html>";
str += "<head>";
str += "<meta charset='gb2312'>";
str += "<style type='text/css'>";
str += "body{font-size:14px;line-height:160%;font-family:宋体;background-color:"+style_showmessageframe_background_color+";background-image:url('"+style_showmessageframe_background_image+"')}a{font-size:14px;color:blue;text-decoration:none;}a:hover:{font-size:14px;color:blue;text-decoration:underline}.tm{font-size:12px;color:#777777}";
str += "</style>";
str += "</head>";
str += "<base target='readmessage'>";
str += "<body>";
str += "【欢迎】"+replaceConfig(username,chatroom_name,chatroom_welcome)+"<br>";
showmessage.document.write(str);
showallmessage.document.write(str);
var masterStr = "";
if(isMaster)
{
masterStr = "您是本房间的主人拥有所有权限。";
}
showNotice("您目前进入的房间为 【<font color='blue'>"+chatroom_roomname+"</font>】。"+masterStr);
if(guestbook)
{
showNotice("您有 "+guestbook+" 条留言,请点<a href='guestbook.php?page=1&username="+username+"' target='_blank'>这里</a>查看。");
}
}
function initChatRoom()
{
showMessageFramePreWrite();
preWriteShowPriMessage();
inputmessage.document.body.style.backgroundImage="url('"+style_inputsayframe_background_image+"')";
setInterval("getMessage()",refresh_interval);
preWriteOnlineList();
preWriteTitle();
inputmessage.document.MessageForm.split.checked = chatroom_default_split;
splitWindow();
setInterval("scrollWindow()",50);
timer();
}
function preWriteShowPriMessage()
{
var str = "<html>";
str += "<head>";
str += "<meta charset='gb2312'>";
str += "<style type='text/css'>";
str += "body{font-size:14px;line-height:160%;font-family:宋体;background-color:"+style_showmessageframe_background_color+";background-image:url('"+style_showmessageframe_background_image+"')}a{font-size:14px;color:blue;text-decoration:none;}a:hover:{font-size:14px;color:blue;text-decoration:underline}.tm{font-size:12px;color:#777777}";
str += "</style>";
str += "</head>";
str += "<base target='readmessage'>";
str += "<body>";
str += "【提示】分屏模式 <font color='red'>启用</font> 这里将只显示跟你相关的内容。<br>";
showselfmessage.document.write(str);
}
//此函数用来处理所有的消息
var tmpnum = 0;
//信息常数
var msg_warn = 1;
var msg_kick = 2;
var msg_bomb = 3;
var msg_lock = 4;
var msg_login = 5;
var msg_logout = 6;
var msg_leave = 7;
var msg_call = 8;
var msg_changeroom = 9;
var msg_rank = 10;
var msg_unforbid = 11;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -