<?php
require_once("global.php");

$fidDB=$db->get_one("SELECT * FROM {$pre}form_module WHERE id='$mid'");

if(!$fidDB){
	showerr("資料有誤");
}
if($fidDB[allowpost]&&!in_array($groupdb['gid'],explode(',',$fidDB[allowpost]))){
	showerr("你所在用戶組無權限");
}

if($fidDB[endtime]&&$fidDB[endtime]<$timestamp){
	showerr("已到截止日期,你不能再操作.");
}

if($action=="postnew"&&!$fidDB[repeatpost]){
	if($lfjuid){
		if($db->get_one("SELECT * FROM {$pre}form_content WHERE uid='$lfjuid' AND mid='$mid'")){
			showerr("你不能重復提交");
		}
	}else{
		if($db->get_one("SELECT * FROM {$pre}form_content WHERE ip='$onlineip' AND mid='$mid'")){
			showerr("你不能重復提交");
		}
	}
}

//刪除
if($action=="del"){
	if(!$lfjid){
		showerr("請先登錄");
	}
	$rsdb=$db->get_one("SELECT * FROM {$pre}form_content WHERE id='$id'");
	if($rsdb[uid]!=$lfjuid&&!$web_admin){
		showerr("你沒權限!");
	}
	$db->query("DELETE FROM {$pre}form_content WHERE id='$id'");
	$db->query("DELETE FROM `{$pre}form_reply` WHERE id='$id'");
	$rsdb[mid] && $db->query("DELETE FROM {$pre}form_content_$rsdb[mid] WHERE id='$id'");
	refreshto("./","刪除succeed",1);
}

/**
*模塊參數配置文件
**/
$m_config=unserialize($fidDB[config]);

//$STYLE=$fidDB[style];

/*模板*/
$FidTpl=unserialize($fidDB[template]);

if($_FILES){
	foreach( $_FILES AS $key=>$value ){
		$i=(int)substr($key,10);
		if(is_array($value)){
			$postfile=$value['tmp_name'];
			$array[name]=$value['name'];
			$array[size]=$value['size'];
		}else{
			$postfile=$$key;
			$array[name]=${$key.'_name'};
			$array[size]=${$key.'_size'};
		}
		if($ftype[$i]=='in'&&$array[name]){

			$array[path]=$webdb[updir]."/form";
			$array[updateTable]=1;	//統計用戶上傳的文件佔用空間大小
			$filename=upfile($postfile,$array);
		}
	}
}

/**處理提交的新發表內容**/
if($action=="postnew")
{
	foreach( $m_config[field_db] AS $key=>$rs )
	{
		if( $rs[mustfill]==1 && $postdb[$rs[field_name]]=='' )
		{
			showerr("{$rs[title]}不能為空");
		}

		if( ($rs[mustfill]==2||$rs[form_type]=='pingfen') && $postdb[$rs[field_name]] )
		{
			//showerr("{$rs[title]}不能私自提交內容");
		}

		if($rs[field_type]=='int'&&$postdb[$rs[field_name]]&&!ereg("^[0-9]+$",$postdb[$rs[field_name]]))
		{
			showerr("{$rs[title]}只能為數字");
		}

		if($rs[field_type]=='varchar')
		{
			$rs[field_leng]=$rs[field_leng]?$rs[field_leng]:255;
			if(strlen( $postdb[$rs[field_name]] )>$rs[field_leng])
			{
				showerr("{$rs[title]}不能超過{$rs[field_leng]}個字符,一個漢字等于兩個字符");
			}
		}

		if($rs[field_type]=='int')
		{
			$rs[field_leng]=$rs[field_leng]?$rs[field_leng]:10;
			if(strlen( $postdb[$rs[field_name]] )>$rs[field_leng])
			{
				showerr("{$rs[title]}不能超過{$rs[field_leng]}個字符");
			}
		}

		if($rs[form_type]=='upmorefile')
		{
			unset($_array);
			foreach( $postdb[$rs[field_name]][url] AS $key=>$value)
			{
				if(!$value){
					continue;
				}
				$_array[]="$value@@@{$postdb[$rs[field_name]][name][$key]}@@@{$postdb[$rs[field_name]][fen][$key]}";
			}
			$postdb[$rs[field_name]]=implode("\n",$_array);
		}
	}

	
	/*對使用了在線編輯器的字段提交的附件地址作處理*/
	foreach( $m_config[is_html] AS $key=>$value)
	{
		$postdb[$key]=str_replace("<img ","<img onload=\'if(this.width>600)makesmallpic(this,600,800);\' ",$postdb[$key]);
		//圖片目錄轉移
		$postdb[$key]=move_attachment($lfjdb[uid],$postdb[$key],"form");
		//獲取遠程圖片
		$postdb[$key]=get_out_pic($postdb[$key],$GetOutPic);
		$postdb[$key] = En_TruePath($postdb[$key]);
		$postdb[$key] = preg_replace('/javascript/i','java script',$postdb[$key]);//過濾js代碼
		$postdb[$key] = preg_replace('/<iframe ([^<>]+)>/i','&lt;iframe \\1>',$postdb[$key]);//過濾框架代碼
	}
	
	$_array=array_flip($m_config[is_html]);
	
	/**
	*提交的內容如果是復選框,就要做處理,如果不是在線編輯器的,也要做過濾,顯然,使用在線編輯器是有危險的
	**/
	foreach( $postdb AS $key=>$value)
	{
		if(is_array($value))
		{
			$postdb[$key]=implode("/",$value);
		}
		elseif(!@in_array($key,$_array))
		{
			$postdb[$key]=filtrate($value);
		}
	}

	$db->query("INSERT INTO `{$pre}form_content` (`title`, `mid`, `hits`, `posttime`, `list`, `uid`, `username`, `titlecolor`, `yz`, `ip`) VALUES ('$postdb[title]','$fidDB[id]','0','$timestamp','$timestamp','$lfjuid','$lfjid','','0','$onlineip')");

	$rs=$db->get_one("SELECT * FROM `{$pre}form_content` ORDER BY id DESC LIMIT 1");
	$id=$rs[id];

	unset($sqldb);
	$sqldb['id']="id='$id'";
	$sqldb['uid']="uid='$lfjuid'";

	/*檢查判斷輔信息表要插入哪些字段的內容*/
	$array = table_field("{$pre}form_content_$fidDB[id]");
	foreach( $array AS $key=>$value)
	{
		if($value=="id"||$value=="uid")
		{
			continue;
		}
		isset($postdb[$value]) && $sqldb["$value"]="`{$value}`='{$postdb[$value]}'";
	}
	
	$sql=implode(",",$sqldb);
	$db->query("INSERT INTO `{$pre}form_content_$fidDB[id]` SET $sql");
	
	//在線支付
	if($postdb[paytype]=='olpay'&&$postdb[paymoney]>0){
		$pay_code=mymd5("form\t$postdb[paymoney]\t$id\t$mid");
		echo "<META HTTP-EQUIV=REFRESH CONTENT='0;URL=$webdb[www_url]/do/olpay.php?pay_code=$pay_code'>";
		exit;
	}
	
	refreshto("bencandy_form.php?mid=$mid&id=$id","表單提交succeed ",5);
}

/*編輯內容*/
elseif($job=="edit")
{
	$rsdb=$db->get_one("SELECT A.*,B.* FROM `{$pre}form_content` A LEFT JOIN `{$pre}form_content_$fidDB[id]` B ON A.id=B.id WHERE A.id='$id'");

	if($rsdb[uid]!=$lfjuid&&!$web_admin)
	{
		showerr("你無權修改");
	}
	
	/*對附件地址作還原*/
	foreach( $m_config[is_html] AS $key=>$value)
	{
		$rsdb[$key]=str_replace("'","&#39;",$rsdb[$key]);
		$rsdb[$key]=En_TruePath($rsdb[$key],0);
	}

	/*表單默認變量作處理*/
	set_table_value($m_config[field_db]);

	$atc="edit";

	require(PHP168_PATH."inc/head.php");
	require(PHP168_PATH."php168/form_tpl/post_$fidDB[id].htm");
	require(PHP168_PATH."inc/foot.php");
}

/*處理提交的內容做修改*/
elseif($action=="edit")
{

	$rsdb=$db->get_one("SELECT A.*,B.* FROM `{$pre}form_content` A LEFT JOIN `{$pre}form_content_$fidDB[id]` B ON A.id=B.id WHERE A.id='$id' ");

	if($rsdb[uid]!=$lfjuid&&!$web_admin)
	{
		showerr("你無權修改");
	}

	foreach( $m_config[field_db] AS $key=>$rs )
	{
		if( $rs[mustfill]==1 && $postdb[$rs[field_name]]==='' )
		{
			showerr("{$rs[title]}不能為空");
		}

		if( ($rs[mustfill]==2||$rs[form_type]=='pingfen') && $postdb[$rs[field_name]] )
		{
			//showerr("{$rs[title]}不能私自提交內容");
		}

		if($rs[field_type]=='int'&&$postdb[$rs[field_name]]&&!ereg("^[0-9]+$",$postdb[$rs[field_name]]))
		{
			showerr("{$rs[title]}只能為數字");
		}

		if($rs[field_type]=='varchar')
		{
			$rs[field_leng]=$rs[field_leng]?$rs[field_leng]:255;
			if(strlen( $postdb[$rs[field_name]] )>$rs[field_leng])
			{
				showerr("{$rs[title]}不能超過{$rs[field_leng]}個字符,一個漢字等于兩個字符");
			}
		}
		if($rs[field_type]=='int')
		{
			$rs[field_leng]=$rs[field_leng]?$rs[field_leng]:10;
			if(strlen( $postdb[$rs[field_name]] )>$rs[field_leng])
			{
				showerr("{$rs[title]}不能超過{$rs[field_leng]}個字符");
			}
		}
		if($rs[form_type]=='upmorefile')
		{
			unset($_array);
			foreach( $postdb[$rs[field_name]][url] AS $key=>$value)
			{
				if(!$value){
					continue;
				}
				$_array[]="$value@@@{$postdb[$rs[field_name]][name][$key]}@@@{$postdb[$rs[field_name]][fen][$key]}";
			}
			$postdb[$rs[field_name]]=implode("\n",$_array);
		}
	}
	
	
	/*對使用了在線編輯器的字段提交的附件地址作處理*/
	foreach( $m_config[is_html] AS $key=>$value)
	{
		$postdb[$key]=str_replace("<img ","<img onload=\'if(this.width>600)makesmallpic(this,600,800);\' ",$postdb[$key]);
		//圖片目錄轉移
		$postdb[$key]=move_attachment($lfjdb[uid],$postdb[$key],"$form");

		//獲取遠程圖片
		$postdb[$key]=get_out_pic($postdb[$key],$GetOutPic);

		$postdb[$key]=En_TruePath($postdb[$key]);
		$postdb[$key] = preg_replace('/javascript/i','java script',$postdb[$key]);//過濾js代碼
		$postdb[$key] = preg_replace('/<iframe ([^<>]+)>/i','&lt;iframe \\1>',$postdb[$key]);//過濾框架代碼
	}
	
	$_array=array_flip($m_config[is_html]);

	/**
	*提交的內容如果是復選框,就要做處理,如果不是在線編輯器的,也要做過濾,顯然,使用在線編輯器是有危險的
	**/
	foreach( $postdb AS $key=>$value){
		if(is_array($value))
		{
			$postdb[$key]=implode("/",$value);
		}
		elseif(!@in_array($key,$_array)&&$key!='template')
		{
			$postdb[$key]=filtrate($value);
		}
	}
	
	$db->query("UPDATE `{$pre}form_content` SET title='$postdb[title]' WHERE id='$id'");


	/*檢查判斷輔信息表要插入哪些字段的內容*/
	unset($sqldb);
	$array = table_field("{$pre}form_content_$fidDB[id]");
	foreach( $array AS $key=>$value)
	{
		if($value=="id"||$value=="uid")
		{
			continue;
		}

		/*這里必須要做判斷,不然的話,一些二次開發用的字段里的值就可能被清空*/
		isset($postdb[$value]) && $sqldb[]="`$value`='{$postdb[$value]}'";
	}
	$sql=implode(",",$sqldb);

	/*更新輔信息表*/
	$db->query("UPDATE `{$pre}form_content_$fidDB[id]` SET $sql WHERE id='$id' ");
	refreshto("bencandy_form.php?mid=$mid&id=$id","修改succeed");	
}
else
{
	//URL變量做處理
	if(is_array($rsdb)){
		foreach( $rsdb AS $key=>$value){
			$rsdb[$key]=filtrate($value);
		}
		$lfjdb && $rsdb=$rsdb+$lfjdb;
	}elseif($lfjdb){
		$rsdb=$lfjdb;
	}
	/*模塊設置時,有些字段有默認值*/
	foreach( $m_config[field_db] AS $key=>$rs)
	{
		if($rs[form_value])
		{
			$rsdb[$key]=$rs[form_value];
		}
	}
	
	//預設值
	set_table_value($m_config[field_db]);


	$atc="postnew";

	require(PHP168_PATH."inc/head.php");
	require(PHP168_PATH."php168/form_tpl/post_$fidDB[id].htm");
	require(PHP168_PATH."inc/foot.php");
}


function set_table_value($field_db){
	global $rsdb;
	foreach( $field_db AS $key=>$rs){
		if($rs[form_type]=='select'){
			$detail=explode("\r\n",$rs[form_set]);
			foreach( $detail AS $_key=>$value){
				list($v1,$v2)=explode("|",$value);
				if($rsdb[$key]==$v1){
					unset($rsdb[$key]);
					$rsdb[$key]["$v1"]=' selected ';
				}
			}
		}elseif($rs[form_type]=='radio'){
			$detail=explode("\r\n",$rs[form_set]);
			foreach( $detail AS $_key=>$value){
				list($v1,$v2)=explode("|",$value);
				if($rsdb[$key]==$v1){
					unset($rsdb[$key]);
					$rsdb[$key]["$v1"]=' checked ';
				}
			}
		}elseif($rs[form_type]=='checkbox'){
			$_d=explode("/",$rsdb[$key]);
			unset($rsdb[$key]);
			$detail=explode("\r\n",$rs[form_set]);
			foreach( $detail AS $_key=>$value){
				list($v1,$v2)=explode("|",$value);
				if( @in_array($v1,$_d) ){
					$rsdb[$key]["$v1"]=' checked ';
				}
			}
		}elseif($rs[form_type]=='upmorefile'){
			$detail=explode("\n",$rsdb[$key]);
			unset($rsdb[$key]);
			foreach( $detail AS $_key=>$value){
				list($url,$name,$fen)=explode("@@@",$value);
				$rsdb[$key][name][]=$name;
				$rsdb[$key][url][]=$url;
				$rsdb[$key][fen][]=$fen;
			}
		}
	}
}


//采集外部圖片
function get_out_pic($str,$getpic=1){
	global $webdb,$_pre;
	if(!$getpic){
		return $str;
	}
	preg_match_all("/http:\/\/([^ '\"<>]+)\.(gif|jpg|png)/is",$str,$array);
	$filedb=$array[0];
	foreach( $filedb AS $key=>$value){
		if( strstr($value,$webdb[www_url]) ){
			continue;
		}
		$listdb["$value"]=$value;
	}
	unset($filedb);
	foreach( $listdb AS $key=>$value){
		$filedb[]=$value;
		$name=rands(5)."__".basename($value);
		if(!is_dir(PHP168_PATH."$webdb[updir]/form")){
			makepath(PHP168_PATH."$webdb[updir]/form");
		}
		$ck=0;
		if( @copy($value,PHP168_PATH."$webdb[updir]/form/$name") ){
			$ck=1;
		}elseif($filestr=file_get_contents($value)){
			$ck=1;
			write_file(PHP168_PATH."$webdb[updir]/form/$name",$filestr);
		}
	
		/*加水印*/
		if($ck&&$webdb[is_waterimg]&&$webdb[if_gdimg])
		{
			include_once(PHP168_PATH."inc/waterimage.php");
			$uploadfile=PHP168_PATH."$webdb[updir]/form/$name";
			imageWaterMark($uploadfile,$webdb[waterpos],PHP168_PATH.$webdb[waterimg]);
		}

		if($ck){
			$str=str_replace("$value","http://www_php168_com/Tmp_updir/form/$name",$str);
		}
	}
	return $str;
}

?>