火车头discuz6.1 完美采集的php接口文件


Posted in PHP onSeptember 13, 2009

PS:对原文件的修改较大,程序中注释已经很详尽,这里就不多说了。

<?php 
// header('Content-Type:text/html;charset=UTF-8'); 
//if(function_exists("mb_convert_encoding")){ 
// $tmp = checkAndTranslate("使用前请将该文件直接上传至论坛根目录", 0); 
// header('Content-Type:text/html;charset=UTF-8'); 
// print($tmp); 
//}else{ 
// print("NO"); 
//} 
// exit("this.line=".__line__); 
/* 
文件名:locoyonline_for_discuz610.php 
*使用前请将该文件直接上传至论坛根目录 
*本文件为GBK编码; 
*处理后导入数据库的编码为:utf-8; 
*需要替换字符时,需把replace.txt复制到同目录下; 
*/ 
//处理全局变量 
//foreach($_POST as $key => $value){ 
//$$key = $value ; 
//print($key.' = '.$value.'\n'); 
//} 
//var_dump($_POST); 
//exit('end-0'); 
// 需要插入的数据表 
// 1.cdb_threads 
// 2.cdb_rewardlog // ok 悬赏记录表 
// 3.cdb_mythreads 
// 4.cdb_posts 
// 5.cdb_tags _update 
// 6.cdb_threadtags 
// 7.cdb_forums _update 
// 8.cdb_members _update ok 更改悬赏表 
//done end ! 
$user_list = file('./makeuser/username.txt'); 
// 随机发帖的用户名单,必须是已经注册的 
// 关于批量注册用户名可以参考 Discuz 6.0+ 批量注册用户名 
$user_list = array_map("curlAndCopy", $user_list); 
function curlAndCopy($a){ 
return trim($a); 
} 
$replyusers = implode("|",$user_list); 
//处理回复的格式 
function trimAndCurl($str){ 
$str = preg_replace('/\n\s{5,}/','', $str , 1); 
$str = trim($str); 
$str = checkAndTranslate($str); 
return $str; 
} 
function checkAndTranslate($mess, $if_replace =1, $in_char_type='GBK', $out_char_type='UTF-8'){ 
//if replace ? 
if($if_replace){ 
$mess = curlAndReplace($mess); 
} 
//if chinese GBK ? 
if(preg_match('/[\x80-\xff]./', $mess) ){ 
$mess = mb_convert_encoding($mess, $out_char_type, $in_char_type); 
} 
return addslashes($mess) ; 
} 
function curlAndReplace($message){ 
$replace_list = file('./makeuser/replace.txt'); 
foreach($replace_list as $item){ 
$item = preg_replace("/\s+/","||",$item); 
$items = explode("||",$item); 
$tmp = '<!--replace-->'; 
$message = str_replace($items[0],$tmp,$message); 
$message = str_replace($items[1],$items[0],$message); 
$message = str_replace($tmp,$items[1],$message); 
} 
return $message; 
} 
define('CURSCRIPT', 'post'); 
define('NOROBOT', TRUE); 
require_once './include/common.inc.php'; 
require_once DISCUZ_ROOT.'./include/post.func.php'; 
$_DTYPE = $checkoption = $optionlist = array(); 
if($typeid) { 
threadtype_checkoption(); 
} 
require_once DISCUZ_ROOT.'./include/discuzcode.func.php'; 
$navigation = $navtitle = $thread = ''; 
//这里是新添加的代码以,开始 
if ( $lid <> "locoy" ) 
{ 
// die(验证密码错误); 
} 
//这里是添加的代码,结束, 
//rq204,Q285576545,2008.7.29 
$navigation = "» <a href=\"forumdisplay.php?fid=$fid".($extra ? '&'.preg_replace("/^(&)*/", '', $extra) : '')."\">$forum[name]</a> $navigation"; 
$navtitle = $navtitle.strip_tags($forum['name']).' - '; 
if($forum['type'] == 'sub') { 
$query = $db->query("SELECT name, fid FROM {$tablepre}forums WHERE fid='$forum[fup]'"); 
$fup = $db->fetch_array($query); 
$navigation = "» <a href=\"forumdisplay.php?fid=$fup[fid]\">$fup[name]</a> $navigation"; 
$navtitle = $navtitle.strip_tags($fup['name']).' - '; 
} 
$special = empty($special) || !is_numeric($special) || $special < 0 || $special > 6 ? 0 : intval($special); 
$allowpostattach = !empty($forum['allowpostattach']) || (!$forum['postattachperm'] && $allowpostattach) || ($forum['postattachperm'] && forumperm($forum['postattachperm'])); 
$attachextensions = $forum['attachextensions'] ? $forum['attachextensions'] : $attachextensions; 
$enctype = $allowpostattach ? 'enctype="multipart/form-data"' : ''; 
$maxattachsize_kb = $maxattachsize / 1000; 
$postcredits = $forum['postcredits'] ? $forum['postcredits'] : $creditspolicy['post']; 
$replycredits = $forum['replycredits'] ? $forum['replycredits'] : $creditspolicy['reply']; 
$digestcredits = $forum['digestcredits'] ? $forum['digestcredits'] : $creditspolicy['digest']; 
$postattachcredits = $forum['postattachcredits'] ? $forum['postattachcredits'] : $creditspolicy['postattach']; 
$maxprice = isset($extcredits[$creditstrans]) ? $maxprice : 0; 
$extra = rawurlencode($extra); 
$blogcheck = empty($isblog) && empty($addtoblog) ? '' : 'checked="checked"'; 
$notifycheck = empty($emailnotify) ? '' : 'checked="checked"'; 
$stickcheck = empty($sticktopic) ? '' : 'checked="checked"'; 
$digestcheck = empty($addtodigest) ? '' : 'checked="checked"'; 
$subject = isset($subject) ? dhtmlspecialchars(censor(trim($subject))) : ''; 
$message = isset($message) ? censor(trim($message)) : ''; 
$readperm = isset($readperm) ? intval($readperm) : 0; 
$price = isset($price) ? intval($price) : 0; 
$urloffcheck = $usesigcheck = $smileyoffcheck = $codeoffcheck = $htmloncheck = $emailcheck = ''; 
$seccodecheck = ($seccodestatus & 4) && (!$seccodedata['minposts'] || $posts < $seccodedata['minposts']); 
$secqaacheck = $secqaa['status'][2] && (!$secqaa['minposts'] || $posts < $secqaa['minposts']); 
if($iscircle = $supe['status'] && $supe['circlestatus'] && $forum['status'] == 2) { 
unset($forum['threadtypes']); 
} 
$allowpostpoll = $allowpost && $allowpostpoll && ($forum['allowpostspecial'] & 1); 
$allowposttrade = $allowpost && $allowposttrade && ($forum['allowpostspecial'] & 2); 
$allowpostreward = $allowpost && $allowpostreward && ($forum['allowpostspecial'] & 4) && isset($extcredits[$creditstrans]); 
$allowpostactivity = $allowpost && $allowpostactivity && ($forum['allowpostspecial'] & 8); 
$allowpostdebate = $allowpost && $allowpostdebate && ($forum['allowpostspecial'] & 16); 
$allowpostvideo = $allowpost && $allowpostvideo && ($forum['allowpostspecial'] & 32) && $videoopen; 
$allowanonymous = $forum['allowanonymous'] || $allowanonymous ? 1 : 0; 
$editorid = 'posteditor'; 
$editoroptions = str_pad(decbin($editoroptions), 2, 0, STR_PAD_LEFT); 
$editormode = $editormode == 2 ? $editoroptions{0} : $editormode; 
$allowswitcheditor = $editoroptions{1}; 
$advanceeditor = $special ? 0 : 1; 
$previewdisplay = !empty($previewpost) ? '' : 'none'; 
if($action == 'newthread') { 
//复制newthread.inc.php 
$discuz_action = 11; 
if(empty($forum['fid']) || $forum['type'] == 'group') { 
exit('未选择版块或版块不能发帖'); 
} 
$isblog = empty($isblog) ? '' : 'yes'; 
if($subject == '' || $message == '') { 
exit('标题或内容为空'); 
} 
if($post_invalid = checkpost()) { 
exit('标题或内容超过发帖限制'); 
} 
if($allowpostattach && is_array($_FILES['attach'])) { 
foreach($_FILES['attach']['name'] as $attachname) { 
if($attachname != '') { 
checklowerlimit($postattachcredits); 
break; 
} 
} 
} 
$typeid = isset($typeid) && isset($forum['threadtypes']['types'][$typeid]) ? $typeid : 0; 
$iconid = !empty($iconid) && isset($_DCACHE['icons'][$iconid]) ? $iconid : 0; 
$displayorder = $modnewthreads ? -2 : (($forum['ismoderator'] && !empty($sticktopic)) ? 1 : 0); 
$digest = ($forum['ismoderator'] && !empty($addtodigest)) ? 1 : 0; 
$blog = $allowuseblog && $forum['allowshare'] && !empty($addtoblog) ? 1 : 0; 
$readperm = $allowsetreadperm ? $readperm : 0; 
$isanonymous = $isanonymous && $allowanonymous ? 1 : 0; 
$price = intval($price); 
$price = $maxprice && !$special ? ($price <= $maxprice ? $price : $maxprice) : 0; 
//echo $typeid.','.','.',' 
if(!$typeid && $forum['threadtypes']['required'] && !$special) { 
// exit('未填写主题分类'); 
} 
$discuz_user=$_POST['username']; 
$discuz_user = checkAndTranslate($discuz_user, 0); 
$sql_tmp = "SELECT uid,password,secques FROM {$tablepre}members m WHERE m.username like '%$discuz_user%'"; 
$query =$db->query($sql_tmp); 
if ($rs=$db->fetch_row($query)){ 
list($discuz_uid,$discuz_pw, $discuz_secques ) =$rs; 
} 
else 
{ 
// exit('不存在的用户名'.$discuz_user); 
exit('不存在的用户名'.$sql_tmp); 
} 
//var_dump($_POST);exit('<br />this.line='.__line__); 
$messages = explode("|||",$message); 
//是否需要去除对最佳答案的评论 
//$messages = array_merge(array_slice($messages, 0, 2), array_slice($messages, 3)); 
$mc = count($messages); 
$replycount = $mc -1; 
$author = !$isanonymous ? $discuz_user : ''; 
$moderated = $digest || $displayorder > 0 ? 1 : 0; 
$attachment = ($allowpostattach && $attachments = attach_upload()) ? 1 : 0; 
$subscribed = !empty($emailnotify) && $discuz_uid ? 1 : 0; 
$supe_pushstatus = $supe['status'] && $forum['supe_pushsetting']['status'] == 1 && !$modnewthreads ? '1' : '0'; 
$sgidadd1 = $sgidadd2 = ''; 
if($iscircle) { 
$sgidadd1 = ', sgid'; 
$sgidadd2 = ", '$sgid'"; 
} 
/*预处理数据*/ 
//$price = mt_rand(3,10); 
$price = 0; 
$views = mt_rand(30,256); 
$timestamp = mt_rand(strtotime('2008-12-25') ,strtotime('2008-12-29')); 
$tagstatus = 0; 
$tags = ""; 
//已解决: 
//$price = -$price; 
//$closed = 1; 
//未解决: 
$closed = 0; 
$db->query("INSERT INTO {$tablepre}threads (fid, readperm, price, iconid, typeid, author, authorid, subject, dateline, lastpost, lastposter, displayorder, digest, blog,attachment, subscribed, moderated, supe_pushstatus $sgidadd1 ,special ,closed ,views) 
VALUES ('$fid', '$readperm', '$price', '$iconid', '$typeid', '$author', '$discuz_uid', '".checkAndTranslate($subject)."', '$timestamp', '$timestamp', '$author', '$displayorder', '$digest', '$blog', '$attachment', '$subscribed', '$moderated', '$supe_pushstatus' $sgidadd2 ,0 ,$closed ,$views )"); 
$tid = $db->insert_id(); 
// making reward logs ! 
$db->query("INSERT INTO {$tablepre}rewardlog (tid,authorid,netamount,dateline) VALUES ('$tid', '$discuz_uid', '$price', '0')"); 
// updating members logs ! 
//if minus credits ? 
//$db->query("UPDATE {$tablepre}members SET posts=posts+1,credits=credits+$price,lastpost='".$_SERVER['REQUEST_TIME']."' WHERE uid ='$discuz_uid' "); 
$db->query("UPDATE {$tablepre}members SET posts=posts+1,lastpost='".$_SERVER['REQUEST_TIME']."' WHERE uid ='$discuz_uid' "); 
if($subscribed) { 
$db->query("REPLACE INTO {$tablepre}subscriptions (uid, tid, lastpost, lastnotify) 
VALUES ('$discuz_uid', '$tid', '$timestamp', '$timestamp')", 'UNBUFFERED'); 
} 
$db->query("REPLACE INTO {$tablepre}mythreads (uid, tid, dateline, special) VALUES ('$discuz_uid', '$tid', '$timestamp', '0')", 'UNBUFFERED'); 
if($moderated) { 
updatemodlog($tid, ($displayorder > 0 ? 'STK' : 'DIG')); 
updatemodworks(($displayorder > 0 ? 'STK' : 'DIG'), 1); 
} 
if($forum['threadtypes']['special'][$typeid] && $optiondata && is_array($optiondata)) { 
foreach($optiondata as $optionid => $value) { 
$db->query("INSERT INTO {$tablepre}typeoptionvars (typeid, tid, optionid, value, expiration) 
VALUES ('$typeid', '$tid', '$optionid', '$value', '".($typeexpiration ? $timestamp + $typeexpiration : 0)."')"); 
} 
} 
$bbcodeoff = checkbbcodes($message, !empty($bbcodeoff)); 
$smileyoff = checksmilies($message, !empty($smileyoff)); 
$parseurloff = !empty($parseurloff); 
//$htmlon = bindec(($tagstatus && !empty($tagoff) ? 1 : 0).($allowhtml && !empty($htmlon) ? 1 : 0)); 
$htmlon = 1; 
$pinvisible = $modnewthreads ? -2 : 0; 
$db->query("INSERT INTO {$tablepre}posts (fid, tid, first, author, authorid, subject, dateline, message, useip, invisible, anonymous, usesig, htmlon, bbcodeoff, smileyoff, parseurloff, attachment) 
VALUES ('$fid', '$tid', '1', '$discuz_user', '$discuz_uid', '$subject', '$timestamp', '".checkAndTranslate($messages[0])."', '$onlineip', '$pinvisible', '$isanonymous', '$usesig', '$htmlon', '$bbcodeoff', '$smileyoff', '$parseurloff', '$attachment')"); 
$pid = $db->insert_id(); 
if($tagstatus && $tags != '') { 
$tags = str_replace(array(chr(0xa1).chr(0xa1), chr(0xa1).chr(0x40), chr(0xe3).chr(0x80).chr(0x80)), ' ', $tags); 
$tagarray = array_unique(explode(' ', censor($tags))); 
$tagcount = 0; 
foreach($tagarray as $tagname) { 
$tagname = trim($tagname); 
if(preg_match('/^([\x7f-\xff_-]|\w){3,20}$/', $tagname)) { 
$query = $db->query("SELECT closed FROM {$tablepre}tags WHERE tagname='".checkAndTranslate($tagname, 0)."'"); 
if($db->num_rows($query)) { 
if(!$tagstatus = $db->result($query, 0)) { 
$db->query("UPDATE {$tablepre}tags SET total=total+1 WHERE tagname='".checkAndTranslate($tagname, 0)."'", 'UNBUFFERED'); 
} 
} else { 
$db->query("INSERT INTO {$tablepre}tags (tagname, closed, total) 
VALUES ('".checkAndTranslate($tagname, 0)."', 0, 1)", 'UNBUFFERED'); 
$tagstatus = 0; 
} 
if(!$tagstatus) { 
$db->query("INSERT {$tablepre}threadtags (tagname, tid) VALUES ('".checkAndTranslate($tagname, 0)."', $tid)", 'UNBUFFERED'); 
} 
$tagcount++; 
if($tagcount > 4) { 
unset($tagarray); 
break; 
} 
} 
} 
} 
$tradeaid = 0; 
if($attachment) { 
$searcharray = $pregarray = $replacearray = array(); 
foreach($attachments as $key => $attach) { 
$db->query("INSERT INTO {$tablepre}attachments (tid, pid, dateline, readperm, price, filename, description, filetype, filesize, attachment, downloads, isimage, uid, thumb, remote) 
VALUES ('$tid', '$pid', '$timestamp', '$attach[perm]', '$attach[price]', '$attach[name]', '$attach[description]', '$attach[type]', '$attach[size]', '$attach[attachment]', '0', '$attach[isimage]', '$attach[uid]', '$attach[thumb]', '$attach[remote]')"); 
$searcharray[] = '[local]'.$localid[$key].'[/local]'; 
$pregarray[] = '/\[localimg=(\d{1,3}),(\d{1,3})\]'.$localid[$key].'\[\/localimg\]/is'; 
$replacearray[] = '[attach]'.$db->insert_id().'[/attach]'; 
} 
$message = str_replace($searcharray, $replacearray, preg_replace($pregarray, $replacearray, $message)); 
$db->query("UPDATE {$tablepre}posts SET message='".checkAndTranslate($message, 0)."' WHERE pid='$pid'"); 
updatecredits($discuz_uid, $postattachcredits, count($attachments)); 
} 
if($iscircle && $sgid) { 
supe_dbconnect(); 
$query = $supe['db']->query("UPDATE {$supe[tablepre]}groups SET lastpost='$timestamp' WHERE gid='$sgid'", 'SILENT'); 
} 
if($modnewthreads) { 
$db->query("UPDATE {$tablepre}forums SET todayposts=todayposts+1 WHERE fid='$fid'", 'UNBUFFERED'); 
} else { 
if($digest) { 
foreach($digestcredits as $id => $addcredits) { 
$postcredits[$id] = (isset($postcredits[$id]) ? $postcredits[$id] : 0) + $addcredits; 
} 
} 
updatepostcredits('+', $discuz_uid, $postcredits); 
$subject = str_replace("\t", ' ', $subject); 
$lastpost = "$tid\t".checkAndTranslate($subject)."\t$timestamp\t$author"; 
$db->query("UPDATE {$tablepre}forums SET lastpost='$lastpost', threads=threads+1, posts=posts+1, todayposts=todayposts+1 WHERE fid='$fid'", 'UNBUFFERED'); 
if($forum['type'] == 'sub') { 
$db->query("UPDATE {$tablepre}forums SET lastpost='$lastpost' WHERE fid='$forum[fup]'", 'UNBUFFERED'); 
} 
} 
echo("成功发表主题|".$tid); 
} 
if($replycount) 
{ 
//开始发布回复 
$discuz_action = 12; 
require_once DISCUZ_ROOT.'./include/forum.func.php'; 
print_r($replyuser); 
$replyusers = explode("|",$replyusers); 
$reusercount = count($replyusers); 
for($re=1;$re<=$replycount;$re++) 
{ 
$index = mt_rand(1,$reusercount-1); 
while( in_array( $index ,$post_arr ) || $replyusers[$index] ==$_POST['username'] ){ 
$index = mt_rand(1,$reusercount-1); 
} 
$post_arr[] = $index; 
$discuz_user = $replyusers[$index]; 
$discuz_user = checkAndTranslate($discuz_user, 0); 
$query =$db->query("SELECT uid,password,secques FROM {$tablepre}members m WHERE m.username like '%$discuz_user%'"); 
if ($rs=$db->fetch_row($query)){ 
list($discuz_uid,$discuz_pw, $discuz_secques ) =$rs; 
} 
else 
{ 
echo('不存在的用户名'.$discuz_user); 
continue; 
} 
$attachnum = 0; 
if($allowpostattach && !empty($_FILES['attach']) && is_array($_FILES['attach'])) { 
foreach($_FILES['attach']['name'] as $attachname) { 
if($attachname != '') { 
$attachnum ++; 
} 
} 
$attachnum && checklowerlimit($postattachcredits, $attachnum); 
} else { 
$_FILES = array(); 
} 
$attachments = $attachnum ? attach_upload() : array(); 
$attachment = empty($attachments) ? 0 : 1; 
$subscribed = $thread['subscribed'] && $timestamp - $thread['lastpost'] < 7776000; 
$newsubscribed = !empty($emailnotify) && $discuz_uid; 
if($subscribed && !$modnewreplies) { 
$db->query("UPDATE {$tablepre}subscriptions SET lastpost='$timestamp' WHERE tid='$tid' AND uid<>'$discuz_uid'", 'UNBUFFERED'); 
} 
if($newsubscribed) { 
$db->query("REPLACE INTO {$tablepre}subscriptions (uid, tid, lastpost, lastnotify) 
VALUES ('$discuz_uid', '$tid', '".($modnewreplies ? $thread['lastpost'] : $timestamp)."', '$timestamp')", 'UNBUFFERED'); 
} 
$bbcodeoff = checkbbcodes($message, !empty($bbcodeoff)); 
$smileyoff = checksmilies($message, !empty($smileyoff)); 
$parseurloff = !empty($parseurloff); 
// $htmlon = $allowhtml && !empty($htmlon) ? 1 : 0; 
$htmlon = 1; 
$usesig = !empty($usesig) ? 1 : 0; 
$isanonymous = $allowanonymous && !empty($isanonymous)? 1 : 0; 
//$discuz_user = checkAndTranslate($discuz_user, 0); 
$author = empty($isanonymous) ? $discuz_user : ''; 
$pinvisible = $modnewreplies ? -2 : 0; 
$rand_time = mt_rand(150,3600); 
$timestamp = $timestamp + $rand_time; 
$db->query("INSERT INTO {$tablepre}posts (fid, tid, first, author, authorid, subject, dateline, message, useip, invisible, anonymous, usesig, htmlon, bbcodeoff, smileyoff, parseurloff, attachment) 
VALUES ('$fid', '$tid', '0', '$discuz_user', '$discuz_uid', '', '$timestamp', '".trimAndCurl($messages[$re])."', '$onlineip', '$pinvisible', '$isanonymous', '$usesig', '$htmlon', '$bbcodeoff', '$smileyoff', '$parseurloff', '$attachment')"); 
$pid = $db->insert_id(); 
// updating reward logs 
$db->query("UPDATE {$tablepre}rewardlog SET answererid='$discuz_uid',dateline='$timestamp' WHERE tid='$tid'"); 
// updating members logs ! 
if($re == 1){ 
//添加积分问题 
$db->query("UPDATE {$tablepre}members SET posts=posts+1,credits=credits+$price,lastpost='".$_SERVER['REQUEST_TIME']."' WHERE uid ='$discuz_uid' "); 
}else{ 
$db->query("UPDATE {$tablepre}members SET posts=posts+1,lastpost='".$_SERVER['REQUEST_TIME']."' WHERE uid ='$discuz_uid' "); 
} 
$db->query("REPLACE INTO {$tablepre}myposts (uid, tid, pid, position, dateline, special) VALUES ('$discuz_uid', '$tid', '$pid', '".($thread['replies'] + 1)."', '$timestamp', '0')", 'UNBUFFERED'); 
$tradeaid = 0; 
if($attachment) { 
$searcharray = $pregarray = $replacearray = array(); 
foreach($attachments as $key => $attach) { 
$db->query("INSERT INTO {$tablepre}attachments (tid, pid, dateline, readperm, price, filename, description, filetype, filesize, attachment, downloads, isimage, uid, thumb, remote) 
VALUES ('$tid', '$pid', '$timestamp', '$attach[perm]', '$attach[price]', '$attach[name]', '$attach[description]', '$attach[type]', '$attach[size]', '$attach[attachment]', '0', '$attach[isimage]', '$attach[uid]', '$attach[thumb]', '$attach[remote]')"); 
$searcharray[] = '[local]'.$localid[$key].'[/local]'; 
$pregarray[] = '/\[localimg=(\d{1,3}),(\d{1,3})\]'.$localid[$key].'\[\/localimg\]/is'; 
$insertid = $db->insert_id(); 
$replacearray[] = '[attach]'.$insertid.'[/attach]'; 
} 
if(!empty($trade) && $thread['special'] == 2 && !empty($_FILES['tradeattach']['tmp_name'][0])) { 
$tradeaid = $insertid; 
} 
$message = str_replace($searcharray, $replacearray, preg_replace($pregarray, $replacearray, $message)); 
$db->query("UPDATE {$tablepre}posts SET message='".checkAndTranslate($message)."' WHERE pid='$pid'"); 
updatecredits($discuz_uid, $postattachcredits, count($attachments)); 
} 
if($modnewreplies) { 
$db->query("UPDATE {$tablepre}forums SET todayposts=todayposts+1 WHERE fid='$fid'", 'UNBUFFERED'); 
if($newsubscribed) { 
$db->query("UPDATE {$tablepre}threads SET subscribed='1' WHERE tid='$tid'", 'UNBUFFERED'); 
} 
} else { 
$db->query("UPDATE {$tablepre}threads SET lastposter='$author', lastpost='$timestamp', replies=replies+1 ".($attachment ? ', attachment=\'1\'' : '').", subscribed='".($subscribed || $newsubscribed ? 1 : 0)."' WHERE tid='$tid'", 'UNBUFFERED'); 
updatepostcredits('+', $discuz_uid, $replycredits); 
$lastpost = "$thread[tid]\t".checkAndTranslate($thread['subject'])."\t$timestamp\t$author"; 
$db->query("UPDATE {$tablepre}forums SET lastpost='$lastpost', posts=posts+1, todayposts=todayposts+1 WHERE fid='$fid'", 'UNBUFFERED'); 
if($forum['type'] == 'sub') { 
$db->query("UPDATE {$tablepre}forums SET lastpost='$lastpost' WHERE fid='$forum[fup]'", 'UNBUFFERED'); 
} 
} 
echo "成功回复"; 
} 
} 
//exit('Run end.this.line='.__line__);
PHP 相关文章推荐
PHP 编写的 25个游戏脚本
May 11 PHP
探讨如何把session存入数据库
Jun 07 PHP
学习php分页代码实例
Oct 24 PHP
PHP屏蔽过滤指定关键字的方法
Nov 03 PHP
使用GDB调试PHP代码,解决PHP代码死循环问题
Mar 02 PHP
php上传图片客户端和服务器端实现方法
Mar 30 PHP
php实现数组中索引关联数据转换成json对象的方法
Jul 08 PHP
PHP结合jQuery实现找回密码
Jul 22 PHP
php中的异常和错误浅析
May 03 PHP
PHP封装的XML简单操作类完整实例
Nov 13 PHP
PHP实现文件上传后台处理脚本
Mar 04 PHP
Laravel登录失败次数限制的实现方法
Aug 26 PHP
PHP 分页类(模仿google)-面试题目解答
Sep 13 #PHP
frename PHP 灵活文件命名函数 frename
Sep 09 #PHP
PHPLog php 程序调试追踪工具
Sep 09 #PHP
php 从数据库提取二进制图片的处理代码
Sep 09 #PHP
封装一个PDO数据库操作类代码
Sep 09 #PHP
PHP 数组遍历顺序理解
Sep 09 #PHP
PHP 裁剪图片成固定大小代码方法
Sep 09 #PHP
You might like
PHP 实现浏览记录并按日期分组
2017/05/11 PHP
PHP 访问数据库配置通用方法(json)
2018/05/20 PHP
Yii框架 session 数据库存储操作方法示例
2019/11/18 PHP
Jquery post传递数组方法实现思路及代码
2013/04/28 Javascript
JS实现很酷的水波文字特效实例
2015/02/26 Javascript
JS扩展方法实例分析
2015/04/15 Javascript
setTimeout内不支持jquery的选择器的解决方案
2015/04/28 Javascript
jQuery控制DIV层实现由大到小,由远及近动画变化效果
2015/10/09 Javascript
Jquery和angularjs获取check框选中的值的方法汇总
2016/01/17 Javascript
简单理解vue中Props属性
2016/10/27 Javascript
JS 插件dropload下拉刷新、上拉加载使用小结
2017/04/13 Javascript
浅析node Async异步处理模块用例分析及常用方法介绍
2017/11/17 Javascript
vue.js,ajax渲染页面的实例
2018/02/11 Javascript
layer.open关闭父窗口 以及调用父页面的方法
2018/08/17 Javascript
详解JavaScript的内存空间、赋值和深浅拷贝
2019/04/17 Javascript
如何利用JS将手机号中间四位变成*号
2020/09/29 Javascript
Python的Flask框架中使用Flask-Migrate扩展迁移数据库的教程
2016/06/14 Python
教大家玩转Python字符串处理的七种技巧
2017/03/31 Python
详谈Python3 操作系统与路径 模块(os / os.path / pathlib)
2018/04/26 Python
python 用下标截取字符串的实例
2018/12/25 Python
python使用PIL实现多张图片垂直合并
2019/01/15 Python
对python中类的继承与方法重写介绍
2019/01/20 Python
Python可视化mhd格式和raw格式的医学图像并保存的方法
2019/01/24 Python
使用python进行波形及频谱绘制的方法
2019/06/17 Python
Python pip替换为阿里源的方法步骤
2019/07/02 Python
python解析xml文件方式(解析、更新、写入)
2020/03/05 Python
Python socket连接中的粘包、精确传输问题实例分析
2020/03/24 Python
如何查看python关键字
2021/01/17 Python
中英文求职信范文
2014/01/27 职场文书
军训学生自我鉴定
2014/02/12 职场文书
幼儿园教师教育感言
2014/02/28 职场文书
船舶工程技术专业求职信
2014/08/07 职场文书
小组口号霸气押韵
2015/12/24 职场文书
2016年读书月活动总结范文
2016/04/06 职场文书
Python中X[:,0]和X[:,1]的用法
2021/05/10 Python
JS前端监控采集用户行为的N种姿势
2022/07/23 Javascript