top
Loading...
聊天室技術(五)--指揮中心
這里是聊天室的指揮中心,所有的指令都要在這里發出

1下面是基本的發送表單代碼

<form name=inputform action='messagesend.php' target='bl' onsubmit='return(checksay());' method=POST>

<?
//下面的2個參數用于驗證信息的正確性
print("<input type='hidden' name='name' value='$name'>n");
print("<input type='hidden' name='pass' value='$pass'>n");
?>

//聊天對象,注意加上 readonly 屬性
<input type="text" name="talkto" size="10" maxlength="20" readonly value="所有人">

//上次聊天的發送內容
<input type='hidden' name='message' value=''>

//發送的表單文本框
<input type="text" name="msg" maxlength="120" size="34">

<input type="submit" name="Submit" value="發送">

</form>

2 檢查發送內容的js

var dx ='';
function checksay( )
{

//不允許發送空的發言
if(document.inputform.msg.value=='')
{
document.inputform.msg.focus();
return false;
}

//不允許重復發言,內容相同,對象相同
if ((document.inputform.msg.value==document.inputform.message.value)&&(document.inputform.talkto.value==dx))
{
alert('發言不能重復');
document.inputform.msg.focus();
return false;
}

//兩次發言內容的間隔不能小于1秒,或者發言字數大于間隔*3
t2=(new Date()).getTime()/1000;
if(((t2-t1)<1)||((t2-t1)*3<document.inputform.msg.value.length))
{
document.inputform.msg.focus();
return false;
}

//更新時間
t1=t2;

document.inputform.showsign.value=1;

//保存上次發言內容
document.inputform.message.value =document.inputform.msg.value;

//清空發言內容
document.inputform.msg.value ='';

//保存發言對象
dx=document.inputform.talkto.value;

//定位焦點
document.inputform.msg.focus();

//返回
return(true);
}

3調用信息發送程序,發布聊天者已經進入的信息
<script>
parent.bl.document.open();
parent.bl.document.write("<meta http-equiv='refresh' content='0;url=messagesend.php?name=<? print($name); ?>&&action=enter&&pass=<? print($pass); ?>'>")
parent.bl.document.close();
</script>

發言由messagesend.php處理完成,注意輸出對象為bl,也就是處理發言的框架名稱,這樣保證發言框架的頁面內容的完整


原作者:howtodo
來源:php2000.com

北斗有巢氏 有巢氏北斗