if(substr($_SERVER[HTTP_USER_AGENT],0,4)=='Wget') header("location: http://news.sina.com.cn");
error_reporting(7);
$templatelist="forum_home";
require "global.php";
include $rootdir."faces/index.php";
global $faces,$aline;
if($_GET[action]=='' and $_POST[action]!='') $_GET[action]=$_POST[action];
if($_GET[action]=='') $_GET[action]='list';
$timenow=date('Y-m-d H:i:s');
if($_SESSION[pic_check]=='') $_SESSION[pic_check]=substr(md5($_SERVER['SERVER_NAME'].time()),0,5);
$boards='';
$rx=$DB->query("SELECT `id`,`title` FROM `${db_prefix}forumname` ");
while($rxa=$DB->fetch_assoc($rx))
{
$boards.="$rxa[title] ";
}
switch($_GET[action])
{
case 'fix_users_posts':
{
$at=time();
$userid=intval($_GET[userid]);//过滤Id,Neeao
if($_GET[userid]>0) $cont="where `userid`>'$userid'";
else $cont='';
$re=$DB->query("SELECT userid from `${db_prefix}user` $cont order by userid");
while($r=$DB->fetch_assoc($re))
{
$posts=$DB->fetch_one_assoc("SELECT count(*) as total from `${db_prefix}forum` where `create_id`='$r[userid]'");
$postsg=$DB->fetch_one_assoc("SELECT count(*) as total from `${db_prefix}forum` where `create_id`='$r[userid]' and `jinghua`='1'");
$DB->query("update `${db_prefix}user` set `forum_posts`='$posts[total]',`forum_posts_good`='$postsg[total]' where `userid`='$r[userid]'");
if($at+20fetch_one_assoc("select id,bid,jinghua,create_id from `${db_prefix}forum` where `id`='$id'");
deltopcache($r[top_id]);
$DB->query("update `${db_prefix}forum` set lasttime=now() where `top_id`='$r[top_id]' and bid='$r[bid]'");
$DB->query("update `${db_prefix}forumname` set lasttime=now() where `id`='$r[bid]'");
if($r[id]=='') {
redirect("$phparticleurl/forum.php?action=view&id=$id","哦?!");
break;
}
if(GetForumQuanXian($r[bid])!=1) {
gotourl("$phparticleurl/forum.php?action=view&id=$id");
break;
}
if($r[jinghua]==1) $r[jinghua]=0;
else $r[jinghua]=1;
$DB->query("update `${db_prefix}forum` set `jinghua` = '$r[jinghua]' where `id`='$id'");
if($r[jinghua]==1)
$DB->query("update `${db_prefix}user` set `forum_posts_good` =`forum_posts_good`+1 where `userid`='$r[create_id]' limit 1");
else $DB->query("update `${db_prefix}user` set `forum_posts_good` =`forum_posts_good`-1 where `userid`='$r[create_id]' and `forum_posts_good`>0 limit 1");
$DB->query("update `${db_prefix}forumname` set `lasttime`=now() where id='rr[bid]'");
redirect("$phparticleurl/forum.php?action=view&id=$id","已设为精华贴!");
}
case 'go_other_board':
{
$id=intval($_GET[id]);//Neeao
$_GET[bid]=intval($_GET[bid]);
$r=$DB->fetch_one_assoc("SELECT * from `${db_prefix}forum` where `id`='$id'");
deltopcache($r[top_id]);
if(GetForumQuanXian($r[bid])!=1) {
redirect("$phparticleurl/forum.php?action=view&id=$_GET[id]","哦?!");
break;
}
$DB->query("update `${db_prefix}forum` set `bid`='$_GET[bid]' where `top_id`='$r[top_id]'");
$DB->query("DELETE FROM `${db_prefix}cache` WHERE `name` = 'ListCache!'");
$DB->query("update `${db_prefix}forumname` set lasttime=now() where `id`='$_GET[bid]' or `id`='$r[bid]'");
redirect("$phparticleurl/forum.php?action=view&id=$id","转移完成!");
break;
}
case 'fix1':
{
$id=intval($_GET[id]);//Neeao
if($id>0) $cont=" and `id`>'$id'"; else $cont='';
$re=$DB->query("SELECT * from `${db_prefix}forum` where `rid`='0' $cont");
$at=time();
while($r=$DB->fetch_assoc($re)) {
fix($r[id]);
if($at+20fetch_one_assoc("SELECT * FROM `${db_prefix}forumname` WHERE `id`='$id' limit 1");
eval('$forum_css= "'.gettemplate('forum_css').'";');
eval('echo "'.gettemplate('forum_post').'";');
break;
}
case 'SetTop':
{
$id = intval($_GET[id]);//过滤ID,By:Neeao
$r=$DB->fetch_one_assoc("SELECT * FROM `${db_prefix}forum` WHERE `id`='$id' limit 1");
$DB->query("update `${db_prefix}forum` set lasttime=now() where `top_id`='$r[top_id]' and bid='$r[bid]'");
if(GetForumQuanXian($r[bid])==0) break;
$DB->QUERY("UPDATE `${db_prefix}forum` SET `top` = IF(`top`='0','1','0') where `id`='$r[id]' limit 1");
$DB->Query("DELETE from `${db_prefix}cache` where `name`='ListCache!' and `d1`='$r[bid]'");
$DB->query("update `${db_prefix}forumname` set `lasttime`=now() where `id`='$r[bid]'");
redirect("$phparticleurl/forum.php?action=list&id=$r[bid]","forum_set_top_ok");
break;
}
case 'sp':
{//将1分支升级为正贴
//$_GET[id]
$id = intval($_GET[id]);//过滤ID,By:Neeao
$r=$DB->fetch_one_assoc("SELECT * FROM `${db_prefix}forum` where `id`='$id' and `top_id`!=`id` limit 1");
$DB->query("update `${db_prefix}forum` set lasttime=now() where `top_id`='$r[top_id]' and bid='$r[bid]'");
if($r[id]!='') {
$r[title]=str_replace('Re:','',$r[title]);
$DB->query("update `${db_prefix}forum` set `top_id`='$r[id]',`rid`='0',`title`='$r[title]',`last_relay`=`createtime`,`last_relay_id`=`id` where `id`='$r[id]' limit 1");
fix($r[id]);
fix($r[top_id]);
deltopcache($r[top_id]);
$row=$DB->fetch_one_assoc("SELECT moditime as last_relay,id as last_relay_id from ${db_prefix}forum where `top_id`='$r[top_id]' order by `moditime` desc limit 1");
$DB->query("UPDATE ${db_prefix}forum set `last_relay`='$row[last_relay]',`last_relay_id`='$row[last_relay_id]' where `id`='$r[top_id]' limit 1");
$DB->query("DELETE FROM `${db_prefix}cache` WHERE `name` = 'ListCache!' and `d1`='$r[bid]'");
$DB->query("update `${db_prefix}forumname` set `lasttime`=now() where `id`='$r[bid]'");
}
fix($r[id]);
fix($r[top_id]);
deltopcache($r[id]);
redirect("$phparticleurl/forum.php?action=view&id=$r[id]","forum_split_ok");
break;
}
case 'deletebypassword':
{
//通过一个随机密码删除,随机密码在发贴时生成.
$id = intval($_GET[id]);//过滤ID,By:Neeao
$r=$DB->fetch_one_assoc("SELECT * FROM `${db_prefix}forum` WHERE `id`='$id' limit 1");
if($r[id]=='') die('ok!');
//redirect("$phparticleurl/forum.php","ok");
if($r[password]==$_GET[password])
{
$_SESSION[delete]='1';
delcache($r[id]);
deltopcache($r[top_id]);
$DB->query("delete from `${db_prefix}forum` where `id`='$id' limit 1 ");
if($r[top_id]==$r[id])
{
$DB->query("DELETE FROM `${db_prefix}forum` where `top_id`='$r[id]'");//删除所有的跟帖
}
else $DB->query("UPDATE `${db_prefix}forum` SET `rid`='$r[rid]' WHERE `rid`='$r[id]' and `type`='b'");//调整下级贴子的首贴号
$rowa=$DB->fetch_one_assoc("SELECT count(id) as total FROM `${db_prefix}forum` where `bid`='$r[bid]' and `type`='b' ");
$row=$DB->fetch_one_assoc("SELECT count(id) as total FROM `${db_prefix}forum` where `bid`='$r[bid]' and `id`=`top_id` and `type`='b'");
$DB->query("UPDATE `${db_prefix}forumname` set `lasttime`=now(),`total` = '$row[total]',`total_all`='$rowa[total]' where `id`='$r[bid]' limit 1");
$DB->query("UPDATE `${db_prefix}user` SET `forum_posts`=`forum_posts`-1 WHERE `userid`='$r[create_id]' and `forum_posts`>0 limit 1");
setre($r[rid]); //从统计此帖上面的贴子数 //递归
$lastrelay=$DB->fetch_one_assoc("SELECT moditime,id from `${db_prefix}forum` where `top_id`='$r[top_id]' order by `id` desc limit 1");
$DB->query("update `${db_prefix}forum` set `last_relay`='$lastrelay[moditime]',`last_relay_id`='$lastrelay[id]' where `top_id`='$r[top_id]' limit 1");
$row=$DB->fetch_one_assoc("SELECT moditime as last_relay,id as last_relay_id from ${db_prefix}forum where `top_id`='$r[top_id]' order by `moditime` desc limit 1");
$DB->query("UPDATE ${db_prefix}forum set `last_relay`='$row[last_relay]',`last_relay_id`='$row[last_relay_id]' where `id`='$r[top_id]' limit 1");
$DB->query("DELETE FROM `${db_prefix}cache` WHERE `name` = 'ListCache!' and `d1`='$r[bid]'");
$DB->query("update `${db_prefix}forum` set lasttime=now() where `top_id`='$r[top_id]' and bid='$r[bid]'");
$posts=$DB->fetch_one_assoc("SELECT count(*) as count from ${db_prefix}forum where `create_id`='$r[create_id]' and `bid`='$r[bid]'");
if($r[id]!=$r[top_id]) {
fix($r[top_id]);
}
gotourl("$phparticleurl/forum.php?action=dels&name_id=$r[create_id]&bid=$r[bid]&title=$r[title]&ip=$r[ip]");
}
die('no!');
break;
}
case 'delete':
{
$id = intval($_GET[id]);//过滤ID,By:Neeao
$r=$DB->fetch_one_assoc("SELECT * FROM `${db_prefix}forum` WHERE `id`='$id' limit 1");
if( $_SESSION[delete]!=1 and GetForumQuanXian($r[bid])==0) die('no!');
$DB->query("update `${db_prefix}forum` set lasttime=now() where `top_id`='$r[top_id]' and bid='$r[bid]'");
$DB->query("DELETE FROM `${db_prefix}forum` WHERE `id`='$_GET[id]' limit 1");//删
delcache($r[id]);
deltopcache($r[top_id]);
if($r[top_id]==$r[id])
$DB->query("DELETE FROM `${db_prefix}forum` where `top_id`='$r[id]'");//删除所有的跟帖
else $DB->query("UPDATE `${db_prefix}forum` SET `rid`='$r[rid]' WHERE `rid`='$r[id]' and `type`='b'");//调整下级贴子的首贴号
$rowa=$DB->fetch_one_assoc("SELECT count(id) as total FROM `${db_prefix}forum` where `bid`='$r[bid]' and `type`='b' ");
$row=$DB->fetch_one_assoc("SELECT count(id) as total FROM `${db_prefix}forum` where `bid`='$r[bid]' and `id`=`top_id` and `type`='b'");
$DB->query("UPDATE `${db_prefix}forumname` set `lasttime`=now(), `total` = '$row[total]',`total_all`='$rowa[total]' where `id`='$r[bid]' limit 1");
$DB->query("UPDATE `${db_prefix}user` SET `forum_posts`=`forum_posts`-1 WHERE `userid`='$r[create_id]' and `forum_posts` > 0");
setre($r[rid]); //从统计此帖上面的贴子数 //递归
$row=$DB->fetch_one_assoc("SELECT moditime as last_relay,id as last_relay_id from ${db_prefix}forum where `top_id`='$r[top_id]' order by `moditime` desc limit 1");
$DB->query("UPDATE ${db_prefix}forum set `last_relay`='$row[last_relay]',`last_relay_id`='$row[last_relay_id]' where `id`='$r[top_id]' limit 1");
$DB->query("DELETE FROM `${db_prefix}cache` WHERE `name` = 'ListCache!' and `d1`='$r[bid]'");
$DB->query("update `${db_prefix}forum` set `lasttime`=now() where `top_id`='$r[top_id]'");
if($r[id]!=$r[top_id]) {
fix($r[top_id]);
gotourl("$phparticleurl/forum.php?action=view&id=$r[top_id]");
}else gotourl("$phparticleurl/forum.php?action=list&id=$r[bid]");
break;
}
case 'post2':
{
if(get_str($_POST[check])!=$_SESSION[pic_check])
{
redirect("$phparticleurl/forum.php?action=view&id=".$id,"forum_post_ok");
break;
}
if($_SESSION[pauserinfo][usergroupid]==4) eval('$userinfo="'.gettemplate('forum_register').'";');
else $userinfo=$_SESSION[pauserinfo][username];
$name=htmlspecialchars(trim($_POST[name]));
$password=htmlspecialchars(trim($_POST[usrpass]));
$email=htmlspecialchars(trim($_POST[email]));
$_POST[face]=htmlspecialchars(trim($_POST[face]));//将特殊字符转成HTML格式,Neeao
$_POST[forumid]=intval($_POST[forumid]);
$_POST[rid]=intval($_POST[rid]);
if($_SESSION[logined]!=1)
{
if(empty($_POST[name]))
{
$msg="名字不能为空!";
eval('echo "'.gettemplate('forum_repost').'";');
exit();
}
}
if(!empty($_POST[name]))
{
$pass=login($name,$password);
if($pass==0)
{
if(adduser($name,$password,$email))
$pass=login($name,$password);
else
{
$msg="密码不对! ";
eval('echo "'.gettemplate('forum_repost').'";');
exit();
}
}
}
if($_SESSION[logined]==1 or $pass==1)
{
//!是否允许回复
$trans = array(''=>'',''=>'','
'=>'');
$_POST[subject]=htmlspecialchars(trim(strtr($_POST[subject],$trans)));//将特殊字符转成HTML格式,Neeao
if($_POST[subject]=='')
{
$msg="标题不能为空! ";
eval('echo "'.gettemplate('forum_repost').'";');
exit();
}
$_POST[body]=htmlspecialchars(trim(strtr($_POST[body],$trans)));//将特殊字符转成HTML格式,Neeao
if($_POST[emailme]=='on') $_POST[emailme]='1';
else $_POST[emailme]='0';
$rf=$DB->fetch_one_assoc("SELECT `id`,`title` from `${db_prefix}forumname` WHERE `id`='$_POST[forumid]' limit 1");
if($rf[id]=='') {
echo "错误号:232212";
exit();
}
if($_POST[rid]!='' and $_POST[rid]!=0) {
//判断没有任何修改的回复
$rad=$DB->fetch_one_assoc("SELECT `en_relay`,`title` FROM `${db_prefix}forum` WHERE `id`='$_POST[rid]' and `bid`='$_POST[forumid]' limit 1");
if($rad[en_relay]==0) break;
$trains = array("Re:Re:"=>"Re:");
$_POST[subject]=strtr($_POST[subject],$trains);
$trains = array("Re:" => "", "re:" => "","\n"=>"","\r"=>"");
if(strtr($_POST[subject],$trains)==strtr($rad[title],$trains) and $_POST[body]=='') {
echo "怎么也要改2个字,才能发布呀!";
eval('echo "'.gettemplate('forum_repost').'";');
break;
}
}
else $_POST[rid]=0;
$trans=array("15159516554"=>"8888888","1119023008"=>"888888","\n"=>" \n",'441399618'=>'441396618','雨过天晴'=>'3721','njanyue'=>'npanyue','jingxiaoshen'=>'jinxiaoshen','13728147188'=>'13728417188','6170213'=>'61170213','hongshengjt'=>'hongshengit','xinrongjt'=>'xinrongit','13712578558'=>'13712758558','21091822'=>'210191822');
$seedarray =microtime();
srand($seed);
$delpassword =md5(rand()); //直接删除帖子的密码.
$DB->query("INSERT INTO `${db_prefix}forum` (`lasttime`,`rid`,`face`,`ip`,`title`,`msg`,`bid`,`password`,
`create_id`,`create_userid`,`mail_me`,`createtime`,`moditime`,`type`,`act`,`size`,`last_relay`)
VALUES(now(),'".intval($_POST[rid])."','$_POST[face]','$_SERVER[REMOTE_ADDR]','$_POST[subject]','".strtr($_POST[body],$trans)."','$_POST[forumid]','$delpassword',
'".$_SESSION[pauserinfo][userid]."','".$_SESSION[pauserinfo][username]."','$_POST[emailme]','$timenow','$timenow','b','1','".strlen($_POST[body])."','$timenow')");
$id=$DB->insert_id();
$DB->query("update `${db_prefix}user` set `forum_posts`=`forum_posts`+1 where `userid`='".$_SESSION[pauserinfo][userid]."' limit 1");
$re=$DB->query("select user.email,user.username from `${db_prefix}manager` manager,`${db_prefix}user` user where manager.`type`='board' and manager.`sortid`='$_POST[forumid]' and user.userid=manager.userid");
$count=$DB->num_rows($re);
if($count>0)
{
$row=$DB->fetch_assoc($re);
$to=$row[username].'<'.$row[email].'>';
if($count>1)
{
while($row=$DB->fetch_assoc($re))
{
if($bcc!='') $bcc=$bcc.',';
else $bcc='Bcc: ';
$bcc.=$row[username].'<'.$row[email].'>';
}
$bcc.="\r\n";
}
mail($to,'['.$rf[title].']有新贴子了!',"浏览:http://$_SERVER[SERVER_NAME]$phparticleurl/$id.html\r\n发自:".$_SESSION[pauserinfo][username]."\n标题:\r\n$_POST[subject]\r\n发贴ip:$_SERVER[REMOTE_ADDR]\r\n直接删除:http://$_SERVER[SERVER_NAME]$phparticleurl/forum.php?action=deletebypassword&id=$id&password=$delpassword\r\n内容:\r\n$_POST[body]",$bcc."From: 安恒\nContent-Type: text/plain;\n charset=\"UTF-8\"\nX-Mailer: PHP"); //!
}
if(empty($_POST[rid])) {
$DB->query("UPDATE `${db_prefix}forumname` SET lasttime=now(),`total_all`=`total_all`+1,`total`=`total`+1 WHERE `id`='$_POST[forumid]' limit 1");
$DB->query("UPDATE `${db_prefix}forum` SET lasttime=now(),`top_id`=`id` where `id`='$id' limit 1");
deltopcache($id);
}
else {
$rad=$DB->fetch_one_assoc("SELECT top_id FROM `${db_prefix}forum` where `id`='$_POST[rid]'");
$DB->query("UPDATE `${db_prefix}forumname` SET lasttime=now(),`total_all`=`total_all`+1 WHERE `id`='$_POST[forumid]' limit 1");
$DB->query("UPDATE `${db_prefix}forum` SET `top_id`='$rad[top_id]' where `id`='$id' limit 1");
$DB->query("update `${db_prefix}forum` set `lasttime`=now() where `top_id`='$rad[top_id]'");
deltopcache($rad[top_id]);
}
$DB->query("UPDATE `${db_prefix}forum` SET `last_relay_id`='$id',`last_relay`='".date('Y-m-d H:i:s')."' WHERE `id`='$rad[top_id]' limit 1");
//!回帖email
//!回复加1
$rid=$_POST[rid];
$aa=0;
unset($ids);
unset($cc);
unset($to);
do{
$aa++;
if($aa>10) break; //最多10级
if($rid==0) break;
$rad=$DB->fetch_one_assoc("SELECT `title`, `top_id`, `create_id`,`rid`,`mail_me`,`createtime` FROM `${db_prefix}forum` where `id`='$rid' limit 1");
$DB->query("UPDATE `${db_prefix}forum` SET `relaycount`=`relaycount`+1 where `id`='$rid' limit 1");
if($rad[mail_me]==1)
{
$user=$DB->fetch_one_assoc("SELECT username,password,`email`,`userid` FROM `${db_prefix}user` WHERE `userid`='$rad[create_id]' and `mailsend`='0' and `userid`!='$_SESSION[pauserinfo][userid]' limit 1");
// if($email!='') {
// $DB->query("update `${db_prefix}user` set `email`='$email' where `userid`='$_SESSION[pauserinfo][userid]' limit 1");
// $user[email]=$email;
// $pauserinfo[email]=$email;
// $_SESSION[pauserinfo][email]=$email;
// }
if($user[email]!='' and $user[userid]!='')
{
$timea=time();
$DB->query("update `${db_prefix}user` set `mailsend`='1',`sendtime`='".date('Y-m-d H:i:s',$timea)."' where `userid`='$user[userid]' limit 1");
$mailmsg="您的标题:$rad[title] $rad[createtime]
http://$_SERVER[SERVER_NAME]$phparticleurl/forum.php?action=mailview&key=$timea&id=$rid
回复标题:$_POST[subject] ".date('Y-m-d H:i:s')."
http://$_SERVER[SERVER_NAME]$phparticleurl/forum.php?action=mvr&key=$timea&id=$rid&relayid=$id
在您通过上面的地址看帖子之前,将不会再发提醒邮件给您
点击这里取消帖子的订阅
http://$_SERVER[SERVER_NAME]$phparticleurl/forum.php?action=cmm&id=$rid&key=$user[password]
";
mail1('=?utf-8?B?'.base64_encode($user[username]).'?=<'.$user[email].'>',"您在[$rf[title]]的贴子有回复了!",$mailmsg,"安恒","forum@anheng.com.cn"); //!
}
}
if($rid==$rad[rid]) {echo "论坛id循环![$rid] ";break;}
$rid=$rad[rid];
}while($rad[rid]!=0); //有上一级的就循环找。
//清理cache.
$DB->query("DELETE FROM `${db_prefix}cache` WHERE `name` = 'ListCache!' and `d1`='$_POST[forumid]'");
$_SESSION[pic_check]='';
redirect("$phparticleurl/forum.php?action=view&id=".$id,"forum_post_ok");
}
break;
}
case 'post1':
{
redirect("$phparticleurl/forum.php?action=view&id=".$id,"forum_post_ok");
break;
}
case 'old_view':
{
$id = intval($_GET['id']);//强制整形 Neeao
$bid = intval($_GET['bid']);//强制整形 Neeao
$r=$DB->fetch_one_assoc("SELECT `id` from `${db_prefix}forum` where `old_number`='$id'
and `bid`='$bid' limit 1");
echo GetATieZi($r[id]);
exit();
break;
}
case 'mailview':
{
if($_GET[id]=='' or $_GET[key]=='') break;
$_GET[id] = intval($_GET['id']);//强制整形 Neeao
$r=$DB->fetch_one_assoc("select create_id from `${db_prefix}forum` where `id`='$_GET[id]'");
if($r[create_id]=='') break;
$DB->query("update `${db_prefix}user` set `mailsend`='0' where `userid`='$r[create_id]' and `sendtime`='".date('Y-m-d H:i:s',$_GET[key])."' limit 1");
gotourl("$phparticleurl/$_GET[id].html");
break;
}
case 'mvr'://'mailviewrelay':
{
if($_GET[id]=='' or $_GET[key]=='') break;
$_GET[id] = intval($_GET['id']);//强制整形 Neeao
$r=$DB->fetch_one_assoc("select create_id from `${db_prefix}forum` where `id`='$_GET[id]'");
if($r[create_id]=='') break;
$DB->query("update `${db_prefix}user` set `mailsend`='0' where `userid`='$r[create_id]' and `sendtime`='".date('Y-m-d H:i:s',$_GET[key])."' limit 1");
gotourl("$phparticleurl/$_GET[relayid].html");
break;
}
case 'cmm'://'cancel_mail_me':
{
$_GET[id] = intval($_GET['id']);//强制整形 Neeao
$_GET[key] = addslashes($_GET[key]);//过滤关键字 Neeao
if($_GET[id]=='' or $_GET[key]=='') break;
$r=$DB->fetch_one_assoc("select create_id,id from `${db_prefix}forum` where `id`='$_GET[id]'");
if($r[create_id]=='') break;
$user=$DB->fetch_one_assoc("select userid from `${db_prefix}user` where `userid`='$r[create_id]' and password='$_GET[key]'");
if($user[userid]!='')
{
$DB->query("update `${db_prefix}forum` set `mail_me`='0' where `id`='$r[id]' limit 1");
setcookie("pauserid",$user[userid],time()+3600*24*3650);
setcookie("papasswordhash",$_GET[key],time()+3600*24*3650);
}
gotourl("$phparticleurl/$_GET[id].html");
break;
}
case 'view':
{
$_GET[id] = intval($_GET['id']);//强制整形 Neeao
$msg=GetATieZi($_GET[id]);
echo $msg;
exit();
break;
}
case 'list':
{
if(!$_GET[id])
{
$re=$DB->query("SELECT * FROM `${db_prefix}forumname`");
echo "
";
while($r=$DB->fetch_assoc($re))
{
echo "$r[title]($r[total]) ";
}
echo '';
break;
}
//读列表cache
if(substr($_SERVER[HTTP_USER_AGENT],0,4)=='Wget') $_GET[page]=1;
if($_GET[page]=='') $_GET[page]=1;
$_GET[jh] = addslashes($_GET[jh]);//过滤关键字 Neeao
$_GET[id] = intval($_GET[id]);//强制整形 Neeao
$_GET[page] = intval($_GET[page]);//强制整形 Neeao
if($cache=$DB->fetch_one_assoc("SELECT `content` FROM `${db_prefix}cache` WHERE `name`='ListCache!$_GET[jh]' and `d1`='$_GET[id]' and `d2`='$_GET[page]' limit 1"))
{
cachetime($cache[time]);
$moditime=strtotime($cache[time]);
header("Last-Modified: ".gmdate("D, d M Y H:i:s",$moditime)." GMT"); // always modified
header("Expires: ".gmdate("D, d M Y H:i:s",time() + 3600*24*20)." GMT"); // always modified
header("Pragma: ");
echo base64_decode($cache[content]);
break;
}
else
{
$DB->query("delete from `${db_prefix}cache` where `name`='ListCache!$_GET[jh]' and `d1`='$_GET[id]' and `d2`='$_GET[page]' limit 1");
}
$foruminfo=$DB->fetch_one_assoc("SELECT * FROM `${db_prefix}forumname` where `id`='$_GET[id]'");
cachetime($foruminfo[lasttime]);
$bid=$foruminfo[id];
$_GET[bid]=$bid;
pageft($foruminfo[total],20);
if($jh!='') $jinghua="and `jinghua`='1'";
$re=$DB->Query("SELECT * FROM `${db_prefix}forum` WHERE `bid`='$foruminfo[id]' and `top`='1' and `act`='1' order by `id` DESC");
$forum_line_dings='';
while($r=$DB->fetch_assoc($re))
{
if($r[title]=='') $r[title]='-';
if($forum_line_dings!='') eval('$forum_line.="'.gettemplate('forum_line_hr').'";');
eval('$forum_line_dings.="'.gettemplate('forum_line_ding').'";');
}
$re=$DB->query("SELECT * FROM `${db_prefix}forum` WHERE `bid`='$foruminfo[id]' $jinghua and `rid`='0' and `act`='1' order by `last_relay` DESC limit $firstcount,$displaypg");
$forum_line='';
while($r=$DB->fetch_assoc($re))
{
if($r[title]=='') $r[title]='-';
if($forum_line!='') eval('$forum_line.="'.gettemplate('forum_line_hr').'";');
$forum_line.=GetListTree($r[id],$r[last_relay_id],0,$_GET[jh]);
}
eval('$forum_css="'.gettemplate('forum_css').'";');
eval('$disp= "'.gettemplate('forum_list').'";');
header("Last-Modified: ".gmdate("D, d M Y H:i:s",strtotime($foruminfo[lasttime]))." GMT"); // always modified
header("Expires: ".gmdate("D, d M Y H:i:s",time() + 3600*20)." GMT"); // always modified
header("Pragma: ");
echo $disp;
//写列表cache
$DB->query("REPLACE INTO `${db_prefix}cache` SET `time`='$foruminfo[lastdata]', `content`='".base64_encode($disp)."',`name`='ListCache!$_GET[jh]',`d1`='$_GET[id]',`d2`='$_GET[page]'");
break;
}
case 'fix':
{//整理$_GET[id]一个
$_GET[id]=intval($_GET[id]);//继续过滤 Id Neeao
$r=$DB->fetch_one_assoc("SELECT * from `${db_prefix}forum` where `id`='$_GET[id]' limit 1");
{
fix($r[id]);
deltopcache($r[top_id]);
if($r[bid]>0)
$DB->query("update `${db_prefix}forum` set `bid`='$r[bid]' where `top_id`='$r[top_id]' ");
}
//redirect("$phparticleurl/forum.php?action=view&id=$r[id]","forum_fix_ok");
break;
}
case 'dels':
{
if($_SESSION[delete]!=1) die("no!");
if($_GET[bid]=='') $_GET[bid]=intval($_GET[id]);
if($_GET[name_id]=='') break;
$_GET[name_id]=intval($_GET[name_id]);
$isadmin=GetForumQuanXian($_GET[bid]);
$_GET[ip]=get_str($_GET[ip]);
$_GET[title]=get_str($_GET[title]);
$userfind=" and (`create_id`='$_GET[name_id]' or ip='$_GET[ip]' or title='$_GET[title]') ";
$_GET[bid]=intval($_GET[bid]);
$foruminfo=$DB->fetch_one_assoc("SELECT * FROM `${db_prefix}forumname` where `id`='$_GET[bid]'");
$r=$DB->fetch_one_assoc("SELECT count(id) as total FROM `${db_prefix}forum`
where `bid`='$_GET[bid]' and `act`='1' $userfind ");
pageft($r[total],20);
$re=$DB->query("SELECT * FROM `${db_prefix}forum` WHERE `bid`='$_GET[bid]' and `act`='1' $userfind order by `id` DESC limit $firstcount,$displaypg");
$forum_line='';
while($r=$DB->fetch_assoc($re))
{
if($isadmin==1 or $_SESSION[delete]==1) $del="del ";
if($r[create_userid]) $userid=$r[create_userid];
if($forum_line!='') eval('$forum_line.="'.gettemplate('forum_line_hr').'";');
eval('$forum_line.="'.gettemplate('forum_line').'";');
}
if($userid!=''){
$pagenav="[$user[username] 注册时间:".date('Y-m-d',$user[joindate])."]发布的帖子:$pagenav";
$_GET[key]=$userid;
}
eval('$forum_css="'.gettemplate('forum_css').'";');
eval('echo "'.gettemplate('forum_list').'";');
break;
}
case 'user_posts':
{
if($_GET[bid]=='') $_GET[bid]=intval($_GET[id]);
if($_GET[name_id]=='') break;
$_GET[name_id]=intval($_GET[name_id]);
$isadmin=GetForumQuanXian($_GET[bid]);
$userfind=" and `create_id`='$_GET[name_id]'";
$user=$DB->fetch_one_assoc("SELECT * from `${db_prefix}user` where `userid`='$_GET[name_id]'");
$_GET[bid]=intval($_GET[bid]);
$foruminfo=$DB->fetch_one_assoc("SELECT * FROM `${db_prefix}forumname` where `id`='$_GET[bid]'");
$r=$DB->fetch_one_assoc("SELECT count(id) as total FROM `${db_prefix}forum`
where `bid`='$_GET[bid]' and `act`='1' $userfind ");
pageft($r[total],20);
$re=$DB->query("SELECT * FROM `${db_prefix}forum` WHERE `bid`='$_GET[bid]' and `act`='1' $userfind order by `id` DESC limit $firstcount,$displaypg");
$forum_line='';
while($r=$DB->fetch_assoc($re))
{
if($isadmin==1 or $_SESSION[delete]==1) $del="del ";
if($r[create_userid]) $userid=$r[create_userid];
if($forum_line!='') eval('$forum_line.="'.gettemplate('forum_line_hr').'";');
eval('$forum_line.="'.gettemplate('forum_line').'";');
}
if($userid!=''){
$pagenav="[$user[username] 注册时间:".date('Y-m-d',$user[joindate])."]发布的帖子:$pagenav";
$_GET[key]=$userid;
}
eval('$forum_css="'.gettemplate('forum_css').'";');
eval('echo "'.gettemplate('forum_list').'";');
break;
}
case 'listbytime':
{
$foruminfo=$DB->fetch_one_assoc("SELECT * FROM `${db_prefix}forumname` where `id`='$_GET[id]'");
pageft($foruminfo[total_all],20);
$re=$DB->query("SELECT * FROM `${db_prefix}forum` WHERE `act`='1' and `bid`='$_GET[id]'
order by `id` DESC limit $firstcount,$displaypg");
$forum_line='';
while($r=$DB->fetch_assoc($re))
{
for($a=0;$a"$key ");
$r[msg]=strtr($r[msg],$trans);
$r[create_userid]=strtr($r[create_userid],$trans);
$r[title]=strtr($r[title],$trans);
}
if($forum_line!='') eval('$forum_line.="'.gettemplate('forum_line_hr').'";');
eval('$forum_line.="'.gettemplate('forum_line').'";');
}
eval('$forum_css="'.gettemplate('forum_css').'";');
eval('echo "'.gettemplate('forum_list').'";');
break;
}
case 'find':
{ if($_GET[key]=='') break;
$akey=explode(" ",ucmd($_GET[key]));
for($a=0;$a0) $findkey.="and (`create_userid`='$key' or `title` like '%$key%' or `msg` like '%$key%')";
}
//echo $findkey;
$foruminfo=$DB->fetch_one_assoc("SELECT * FROM `${db_prefix}forumname` where `id`='$_GET[bid]'");
$r=$DB->fetch_one_assoc("SELECT count(id) as total FROM `${db_prefix}forum`
where `bid`='$_GET[bid]' and `act`='1' $findkey ");
pageft($r[total],20);
$pagenav='【搜索结果】:'.$pagenav;
$re=$DB->query("SELECT * FROM `${db_prefix}forum` WHERE `act`='1' and `bid`='$_GET[bid]' $findkey
order by `id` DESC limit $firstcount,$displaypg");
$forum_line='';
while($r=$DB->fetch_assoc($re))
{
for($a=0;$a"$key ");
$r[msg]=strtr($r[msg],$trans);
$r[create_userid]=strtr($r[create_userid],$trans);
$r[title]=strtr($r[title],$trans);
}
if($forum_line!='') eval('$forum_line.="'.gettemplate('forum_line_hr').'";');
eval('$forum_line.="'.gettemplate('forum_line').'";');
}
eval('$forum_css="'.gettemplate('forum_css').'";');
eval('echo "'.gettemplate('forum_list').'";');
break;
}
default:
{
break;
}
}
function GetFaceList()
{
GLOBAL $rootdir,$phparticleurl,$faces,$aline;
$aline--;
$a=0;
while($r=each($faces))
{
if($a%8==0) $FaceAll.='';
$a++;
eval('$FaceAll.="'.gettemplate('forum_view_post_face').'";');
}
return $FaceAll;
}
function fix($id, $top_id = '')
{
global $DB,$db_prefix;
if($id==0) return;
if($top_id=='')
{
$fixlast=1; //最后要fix最后1贴
$top=$DB->fetch_one_assoc("SELECT `top_id` from `${db_prefix}forum` where `id`='$id' limit 1");
if($top[top_id]>0)
$top_id=$top[top_id];
else $top_id=$id;
unset($top);
}
$r=$DB->fetch_one_assoc("SELECT sum(relaycount) as total from `${db_prefix}forum` WHERE `rid`='$id'");
$DB->query("UPDATE `${db_prefix}forum` SET `relaycount`='$r[total]' where `id`='$id' limit 1");
$DB->query("UPDATE `${db_prefix}forum` SET `top_id`='$top_id' where `rid`='$id'"); //更新下级的top_id
$re=$DB->query("SELECT `id` from `${db_prefix}forum` where `rid`='$id'");
if($DB->num_rows($re)>0)
while($row=$DB->fetch_assoc($re))
{
fix($row[id],$top_id);
}
if($fixlast==1)
{
$r=$DB->fetch_one_assoc("SELECT `createtime`,`top_id`,`id` from `${db_prefix}forum` where `top_id`='$top_id' order by id desc limit 1");
$DB->query("UPDATE `${db_prefix}forum` set `last_relay`='$r[createtime]',`last_relay_id`='$r[id]' where `top_id`='$r[top_id]' and `last_relay`<'$r[createtime]' limit 1");
}
return;
}
function setre($id, $top_id = '')
{
//向上统计relaycount
global $DB,$db_prefix;
$r=$DB->fetch_one_assoc("SELECT sum(relaycount) as total from `${db_prefix}forum` WHERE `rid`='$id'");
$DB->query("UPDATE `${db_prefix}forum` SET lasttime=now(),`relaycount`='$r[total]' where `id`='$id' limit 1");
$r=$DB->fetch_one_assoc("SELECT `id`,`rid` from `${db_prefix}forum` WHERE `id`='$id' limit 1");
if ($r['id']==$r['rid']) {
return; //循环
}
if ($r['rid']!==0) {
setre($r['rid'], $top_id);
}
return;
}
function GetForumQuanXian($id = '')
{
//获得当前用户在论坛$bid里面的权限 放进$_SESSION['forumqx'];
global $db_prefix,$DB,$pauserinfo;
if ($_SESSION['pauserinfo']['username']=='admin') {
return 1;
}
if ($_SESSION['pauserinfo']['username']=='anheng') {
return 1;
}
#if($_SESSION['pauserinfo']['username']=='刘世伟') return 1;
$r=$DB->fetch_one_assoc("select * from `${db_prefix}manager` where `sortid`='$id' and `type`='board' and `userid`='".$_SESSION['pauserinfo']['userid']."' limit 1");
if ($r['userid']!='') {
return 1;
}
return 0;
}
function GetATieZi($id)
{
global $DB,$boards,$cachepath,$db_prefix,$pauserinfo,$phparticleurl,$style,$faces,$rootdir;
$cachepatha="$cachepath/forum/".intval($id/3000);
$DB->query("UPDATE `${db_prefix}forum` SET `viewcount`=`viewcount`+1 where `id`='$id'");
if ($pauserinfo['usergroupid']<3 and file_exists("$cachepatha/$id.html")) {
cachetime(filemtime("$cachepatha/$id.html"), 72000);
return file_get_contents("$cachepatha/$id.html");
exit();
}
$r=$DB->fetch_one_assoc("SELECT * FROM `${db_prefix}forum` WHERE `id`='$id' limit 1");
if ($r['id']=='') {
gotourl("http://www.anheng.com");
}
#$trans=array("\n"=>" \n",'441399618'=>'441396618','雨过天晴'=>'3721','njanyue'=>'npanyue','jingxiaoshen'=>'jinxiaoshen','13728147188'=>'13728417188','6170213'=>'61170213','hongshengjt'=>'hongshengit');
#$r[body]=strtr($r[body],$trans);
$user=$DB->fetch_one_assoc("SELECT * FROM `${db_prefix}user` WHERE `userid`='$r[create_id]' limit 1");
$moditime=strtotime($r[lasttime]);
$_SESSION[lastbid]=$r[bid];
if(GetForumQuanXian($r[bid])==1)
{
eval('$forum_view_delete="'.gettemplate('forum_view_delete').'";');
}
$row=$DB->fetch_one_assoc("SELECT * FROM `${db_prefix}forumname` WHERE `id`='$r[bid]' limit 1");
if($r[top_id]!=0) $relay=GetListTree($r[top_id],$r[id],0,$_GET[jh]);
if($_SESSION[pauserinfo][usergroupid]==4) eval('$userinfo="'.gettemplate('forum_register').'";');
else $userinfo=$_SESSION[pauserinfo][username];
$trans = array("\n" => "\n:"," "=>"\n:");
// if($r[msg]) $remsg=':'.strtr($r[msg],$trans);
if($r[face]) {
$facesd=$faces[$r[face]];
eval('$face="'.gettemplate('forum_view_face').'";');
}
$FaceAll=GetFaceList();
$ips=explode('.',$r[ip]);
$r[ip]=$ips[0].'.'.$ips[1].'.'.$ips[2].'.*';
eval('$forum_css="'.gettemplate('forum_css').'";');
eval('$result="'.gettemplate('forum_view').'";');
if(!file_exists($cachepatha))
{
mkdir($cachepatha);
chmod($cachepatha,0777);
}
file_put_contents("$cachepatha/$id.html",$result);
chmod("$cachepatha/$id.html",0666);
touch("$cachepatha/$id.html",strtotime($r[lasttime]));
cachetime($r[lasttime]);
return $result;
}
function GetListTree($top_id, $local_id = 0, $jibie = 0, $jh = '') //得到一个列表树
{
global $foruminfo,$db_prefix,$DB,$phparticleurl,$faces;
if($jh!='') $jinghua="and `jinghua`='1'";
$r=$DB->fetch_one_assoc("SELECT * FROM `${db_prefix}forum` WHERE `id`='$top_id' $jinghua and `act`='1' limit 1");
if($r[size]==0) $r[size]='无内容';
else $r[size].='字节';
$forum_line='';
if($r[face]!='' and $r[face]!='0')
{
$facesd=$faces[$r[face]];
eval('$face="'.gettemplate(forum_view_face).'";');
}
if($r[id]==$local_id and $local_id!=$r[top_id]) eval('$forum_line.="'.gettemplate('forum_line_local').'";');
else eval('$forum_line.="'.gettemplate('forum_line').'";');
$re=$DB->query("SELECT `id` FROM `${db_prefix}forum` WHERE `rid`='$top_id' $jinghua and `act`='1' order by 'id' DESC $count");
if($DB->num_rows($re)==0)
{
return $forum_line.' ';
}
$jibie++;
if($jibie>0 and $jibie<10) $forum_line.='';
while($r=$DB->fetch_assoc($re))
{
$forum_line.=GetListTree($r[id],$local_id,$jibie,$jh);
}
if($jibie>0 and $jibie<10) $forum_line.=' ';
return $forum_line.'';
}
function ucmd($get)
{
return(addslashes(htmlspecialchars(trim($get))));
}
function mail1($email, $submit, $msg, $from = '论坛', $fromemail = 'noname@nodomain.com')
{
mail($email,'=?utf-8?B?'.base64_encode($submit).'?=',$msg,"From: =?utf-8?B?".base64_encode($from)."?=<$fromemail>\r\nContent-Transfer-Encoding: 8bit\r\nContent-Type: text/plain; charset=UTF-8"); //!
}
function delcache($id)
{
global $rootdir,$cachepath;
$cachepatha="$cachepath/forum/".intval($id/3000);
$file=$cachepatha.'/'.$id.'.html';
if(file_exists($file)) unlink($file);
}
function deltopcache($top_id)
{
global $DB,$db_prefix;
$top_id=intval($top_id);
$re=$DB->query("select id from ${db_prefix}forum where top_id='$top_id'");
while($a=$DB->fetch_assoc($re)) delcache($a[id]);
}
?>