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

 

火车头官方提供的discuz6.1的php接口比较粗糙,基本不能满足需要,本人在采集的工作中使用的采集接口文件如下:

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 = "&raquo; <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 = "&raquo; <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__);

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
日益增多的互联网垃圾是一种非常无德的行为。而众多站长每日为了垃圾信息头疼不已。 EndSpam是一款可防垃圾广告的插件。智能化,反垃圾功能不断完善。同时不断升级中。 适应版本:Discuz!全版本可用。可供gbk和utf8两种编码的Discuz论坛使用。可自动检测广告并放到回收站,省去站长维护负担。=============插件安装使用步骤:==============1、下载附件  endspam1.03.zip (4.13 KB) 并解压endspam.php上传到您的论坛根目录下。 2、运行endspam.php,按照说明進行授权免费申请。 3、修改include/newthread.inc.php,查找 $db->query("INSERT INTO {$tablepre}threads,在前面增加一行 include_once 'endspam.php';//调用防spam插件 4、修改include/newreply.inc.php,查找 if($subscribed && !$modnewreplies) {,在前面增加一行 include_once 'endspam.php';//调用防spam插件5、修改include/editpost.inc.php,查找 $message = preg_replace,在前面增加一行 include_once 'endspam.php';//调用防spam插件6、修改templates/default/viewthread_node.htm,查找 <a>TOP</a>,在下面增加这段:                                         <!--{if $groupid==1 || $groupid==2 || $groupid==3}-->                                                <a>Spam</a>                                        <!--{/if}--> 然后等候授权Email通知并按照Email中的说明点击授权激活即可。未收到授权邮件的请检查邮件是否被误放到垃圾邮件中。===============部分说明:====================== 1、了解程序的站长可自行修改endspam.php,$_endspamgroupid和$_endspamrootid为Discuz对应的权限组。前者可根据需要修改为允许汇报垃圾广告(spam)的用户组。 2、对于垃圾广告和疑似垃圾广告的内容,本插件并未删除。请到回收站自行检查。疑似spam的内容在发表时被自动放到回收站,以保证网站的帖子不丢失。 3、授权未使用或无法连接官方网站進行Spam检测通讯时,反垃圾广告插件不生效,不妨碍正常发帖。 4、同一用户重复发相同内容的帖子将被认为是可能广告贴,可能广告贴服务器返回的验证数据是maybe。如果您的论坛对该类内容不想设置为广告,请自行修改endspam.php,查找maybe,删去该段内容。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值