php 站内信提醒怎么做???

2025-05-17 08:40:09
推荐回答(1个)
回答1:

给你提供一个简单的思路 !其实你的思路有些片面了 真正完善的做法 不应该是这样的哦!

你可以建立两张表 收信箱 发信箱! 当用户A给用户B 发送一个消息之后 同时对两张表执行insert 操作!初始状态为 未读!

用户B 只要实时的 用js去请求 一个固定的页面 假使 此页面定为 Msg.State.php (功能呢 主要是获取当前用户的消息数目 状态等等便于 实时显示) js设定时间 每20秒去请求一次 返回未显示的消息数目 用于前台显示

用户B 查看消息的时候需要新开页面 这个页面暂定 check.msg.php 用于查看 消息 主要功能为更改消息状态 删除 未读 已读 下面主要是针对 消息状态的处理了 用户B 可以对用户A的消息执行删除操作 但系统消息不可被删除 (可以处于删除状态) 当用户B 查看消息的时候 将此消息标记为已读 此时可以js 去再次请求 Msg.State.php页面 传出动作 update 去执行 update操作 更改消息状态 并尝试刷新 check.msg.php页面

下面给出 js请求页面的实现方法!至于实例化 ajax的对象我就不写了

var ajax=null;
function show(){
var hello_obj=document.getElementById("hello");
ajax=createAjax();//初始化ajax对象
ajax.onreadyStateChange=function(){
if(ajax.readyState==4){
if(ajax.status==200){
var data=ajax.responseText;

hello_obj.innerHTML=data;

}else{

alert("页面请求失败");
}

}
}

ajax.open("post","Msg.State.php",true);//打开服务器 指定传递方式为post
ajax.setRequestHeader("Content-Type","application/x-www-form-urlencoded ");这个是发送页头
ajax.send("参数=用户编号");//发送数据
}