1、当用户登录bellbot网站时,会生成一段代码:
<script type="text/javascript" src="http://zt.xoyo.com/cqzn/bell/?act=setmemcache&id=3">
这段代码的作用是向后台服务器的缓存中写人数据,其中包括用户访问的总量代码如下
$id = $_GET['id'];
empty($id)&&exit('fail');
$info = getpassport($id);
$keyarr = setkey($info['passport']);
if(empty($keyarr['total']['number'])){
$Ttserver->set($keyarr['total']['key'],1);
}else{
$Ttserver->increment($keyarr['total']['key']);
}
if(empty($keyarr['normal']['number'])){
$result=$Ttserver->set($keyarr['normal']['key'],1);
}else{
$result=$Ttserver->increment($keyarr['normal']['key']);
}
//******用户登录时获取用户的id
function getpassport($id){
global $db;
$sql = "select * from test where id='{$id}'";
$info = $db->getRow($sql);
return $info;
}
//*******用户访问时缓存key值的设定
function setkey($passport){
global $db,$config,$Ttserver;
$key = 'bell_'.$passport;
$totalkey = 'bell_total_'.$passport;
$number = $Ttserver->get($key);
$totalnumber = $Ttserver->get($totalkey);
$keyarr = array('normal' => array('key' => $key,'number' => $number), 'total' => array('key' => $totalkey,'number' => $totalnumber));
return $keyarr;
}
//*******获取用户的id
function getid($passport,$password){
global $db;
$password=md5($password);
$sql = "select * from test where passport = '{$passport}' and pwd='{$password}'";
$userinfo = $db->getRow($sql);
if(empty($userinfo)){
$result = user($passport);
if($result){
$data = array('passport' => $passport ,'pwd' => $password);
$db->insert('test', $data);
$id = $db->lastId();
}else{
$id="false";
}
}else{
$id = $userinfo['id'];
}
return $id;
}
2、当我们成功登录后不断的请求后台服务器,来判断缓存中数据的变化。
$id = $_SESSION['id'];
empty($id)&&exit('fail');
$info = getpassport($id);
$keyarr = setkey($info['passport']);
if($keyarr['normal']['number']>=5){
echo "5:ding:".$keyarr['total']['number'];
$Ttserver->decrement($keyarr['normal']['key'],5);
}else{
if(empty($keyarr['normal']['number'])){ echo "no:ding:".$keyarr['total']['number'];exit;}
echo $keyarr['normal']['number'].":ding:".$keyarr['total']['number'];
$Ttserver->delete($keyarr['normal']['key']);
}
3、根据后台返回的数据,在前台用js控制发出声音即可(我只用的flash实现的)。
<embed id="song" height="80" width="150" pluginspage="http://www.macromedia.com/go/getflashplayer"
type="application/x-shockwave-flash" wmode="transparent" src=""></embed>
我们只需要给这个标签加上src的地址即可
<script>
var interval;
$(document).ready(function(){
interval = setInterval("getding()", 2000);
})
function getding(){
$.ajax({type:"GET",url:"http://zt.xoyo.com/cqzn/bell/index.php?act=memcache",success:function(msg){
var arr=msg.split(':');
if(arr[0]=='no'){
alert('end');
}else{
for(var i=0;i<arr[0];i++){
var timeout = i*1000;
setTimeout("addSong()",timeout);
}
}
$('#rnum').html(arr[2]);
}})
}
function addSong(){
var song = document.getElementsByTagName("embed");
if(true){
song[0].src='http://zt.xoyo.com/cqzn/bell/style/js/test.swf';
}
}
初学者,忘大家多提出意见!