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($password, $name);
				if($pass==0)
				{
					if(adduser($name,$password,$email))
						$pass=login($password, $name);
					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]);
}
?>