函数function vbb3_message($user_id,$user_name,$bbs_id)
- 代碼: 選擇全部
$message = addslashes(fetch_censored_text($_POST["temp_id"]));
$DB_site->query("INSERT INTO pmtext\n\t(fromuserid, fromusername, title, message, touserarray, iconid, dateline, showsignature, allowsmilie)\nVALUES\n\t($bbs_id, '" . addslashes($p2[username]) . "', '".$user_name." 传来WOG讯息', '".$message."', '" . addslashes($p[username]) . "', 0, " . time() . ", 0, 1)");
里面的touserarray插入的记录是空的,而且
- 代碼: 選擇全部
$DB_site->query("INSERT INTO pm (pmtextid, userid, folderid, messageread) VALUES ($pmtextid, $bbs_id, 0, 0)");
$DB_site->shutdown_query("UPDATE user SET pmtotal=pmtotal+1,pmunread=pmunread+1 WHERE userid=$bbs_id");
更新的是发送者而非接收者的PM状态
我的fix方法,用下面的代码替换这个函数。
function vbb3_message($user_id,$user_name,$bbs_id)
注意,为了节省空间没有自留消息备份
- 代碼: 選擇全部
function vbb3_message($user_id,$user_name,$bbs_id)
{
global $DB_site,$_POST,$lang,$root_path;
$_POST["pay_id"]=addslashes(htmlspecialchars($_POST["pay_id"]));
$p=$DB_site->query_first("SELECT p_bbsid FROM wog_player WHERE p_name='".$_POST["pay_id"]."'");
$tu= $DB_site->query_first("SELECT username FROM user WHERE userid =".$p[p_bbsid]."");
$p2=$DB_site->query_first("SELECT username FROM user WHERE userid =".$bbs_id."");
if($p && $p2)
{
// insert private message text
require_once($root_path.'includes/functions.php');
$message = addslashes(fetch_censored_text($_POST["temp_id"]));
$DB_site->query("INSERT INTO pmtext\n\t(fromuserid, fromusername, title, message, touserarray, iconid, dateline, showsignature, allowsmilie)\nVALUES\n\t($bbs_id, '" . addslashes($p2[username]) . "', '".$user_name." 传来WOG讯息', '".$message."', '" .addslashes(serialize($tu[username])). "', 0, " . time() . ", 0, 1)");
// get the inserted private message id
$pmtextid = $DB_site->insert_id();
$DB_site->query("INSERT INTO pm (pmtextid, userid, folderid, messageread) VALUES ($pmtextid, '".$p[p_bbsid]."', 0, 0)");
$DB_site->shutdown_query("UPDATE user SET pmtotal=pmtotal+1,pmunread=pmunread+1 WHERE userid =".$p[p_bbsid]."");
showscript("parent.job_end(7)");
}else
{
alertWindowMsg($lang['wog_act_noid']);
}
unset($p);
unset($p2);
unset($tu);
}