#--------------- 버튼 출력 함수 -----------------------#
function print_button($type) {
global $tbname, $img_url;
global $tbname, $page, $no,$info,$page;
if($type == "list") {
echo("");
}
elseif($type == "read") {
echo("");
}
elseif($type=="write" or $type == "write_form") {
if ($type == "write") { $tmp_href = "javascript:checkInput()"; }
else { $tmp_href = "?tbname=$tbname&pageage=$page&action=write_form"; }
echo("");
}
elseif($type == "reply" or $type == "reply_form") {
if ($type == "reply") { $tmp_href = "javascript:checkInput()"; }
else { $tmp_href = "?tbname=$tbname&page=$page&action=reply_form&no=$no$key_var"; }
echo("");
}
elseif($type == "modify" or $type == "modify_form") {
if ($type == "modify") { $tmp_href = "javascript:checkInput()"; }
else { $tmp_href = "?tbname=$tbname&page=$page&action=modify_form&no=$no$key_var"; }
echo("");
}
elseif($type == "delete") {
echo("");
}
elseif($type == "prev") {
$prev_p = $p - 1;
if($p != 1) {
echo("");
}
}
elseif($type == "next") {
global $total_p;
$next_p = $p + 1;
if($p != $total_p) {
echo("");
}
}
}
#-----------------------------------------------#
#################################################################
############################ 기능 함수 ##############################
#--------------- 특정 레코드를 불러와서 변수에 할당하는 함수 -----------------------#
function fetch_var_record($no) {
global $tbname, $no, $keyword, $writer,$img_url,$name,$file,$ip_print;
global $info;
$field_name ="no,step, idx,sort,subject, contents,name,email,wdate, usetag,homepage,user_ip, hit, file_name, file_size, file_path";
$result = mysql_query("select $field_name from $tbname where no=$no") or die(mysql_error());
$info = @mysql_fetch_array($result);
$info[subject] = stripslashes($info[subject]);
$info[subject] = html_use_not($info[subject]);
$info[contents] = stripslashes($info[contents]);
if($keyword) {
$info[contents] =str_replace("$keyword","$keyword",$info[contents]); //색깔변환
}
$info[contents] = han_wrap($info[contents], 84, "
");
// $info[homepage] = han_wrap($info[homepage], 20, "
");
// $info[homepage] = stripslashes(trim($info[homepage]));
// if($info[homepage] != '') {
// $info[homepage] = "http://".$info[homepage];
// }
if($ip_print == 'yes') {
$info[user_ip] = "(IP:".$info[user_ip].")";
}
$info[name] = stripslashes($info[name]);
$info[email] = stripslashes($info[email]);
if(!$info[email]) {
$writer = $info[name]; // 전자우편이 없는경우
} else {
$name = html_use_not($info[name]);
$writer = "$name ";
}
if(!$info[file_name]) {
$file = '첨부파일 없음';
} else {
$file_size = number_format($info[file_size]);
$file = " $info[file_name]";
}
}
#-----------------------------------------------------------------------------#
#--------------- 본문 조회후 조회수 1 더하기 -----------------------#
function add_count() {
global $tbname, $no;
global $info;
$info[hit]++;
$Sql = "UPDATE $tbname SET hit = $info[hit] WHERE no = $no";
mysql_query($Sql);
}
#-----------------------------------------------------------------------------#
#--------------- 게시물을 저장하는 함수 -------------#
function write() {
global $tbname,$name,$email,$usetag,$contents,$userfile,$homepage,$passwd,$user_ip,$upload_dir,$userfile_size,$userfile_name;
global $subject,$login_id,$login_name,$REMOTE_ADDR;
setcookie("username",$name,time()+760000,"/");
setcookie("useremail",$email,time()+760000,"/");
setcookie("userhome",$homepage,time()+760000,"/");
//홈페이지 체크
if ($homepage) {
if (strlen($homepage)>60 ){
alert_and_back("홈페이지 주소가 60byte 넘으면 안됩니다.");
}
else homepage_check($homepage);
}
// E-mail 체크
if ($email) {
if (strlen($email)>50 ){
alert_and_back("E-mail 주소가 50byte 넘으면 안됩니다.");
}
else email_check($email);
}
// 태그 사용하지 않음에 체크 했을 경우 특수문자로 태그변환
if($usetag) {
$contents = htmlspecialchars($contents);
$usetag = "2";
} else {
$usetag = "1";
}
if(!$subject) {$subject = "제목을 입력하지 않았습니다.";}
if(!$login_id) {$login_id = "-";}
$name = "$name";
$subject = addslashes($subject);
$name = addslashes($name);
$email = addslashes($email);
// $homepage = addslashes($homepage);
$contents = addslashes($contents);
$passwd = addslashes(trim($passwd));
// $homepage = trim(ereg_replace("http://"," ",$homepage)); // "" 문자로 변환
$subject = trim(ereg_replace("
","< x m p >",$subject)); // "" 문자로 변환
$user_ip = $REMOTE_ADDR; // 등록자 아이피 입력
// $contents = nl2br($contents);
$max_query = mysql_query("select max(no),max(idx) from $tbname") or die(mysql_error());
$x_no = mysql_result($max_query, 0, 'max(no)');
$x_no = $x_no+1;
$max_no = mysql_result($max_query, 0, 'max(idx)');
$max_no = $max_no+1;
// 첨부파일 있을경우에
if($userfile_name) {
$new_name = explode(".",$userfile_name);
$userfile_name = $x_no.".$new_name[1]";
upload($x_no,$userfile_name); // function file 에서 가져온다.
}
$field_name ="no,step, idx,sort,subject, contents,name,email,wdate, usetag,homepage,user_ip,passwd, hit, file_path, file_size, file_name"; // 필드이름
$query = mysql_query("insert into $tbname ($field_name) values ('', 2, $max_no, '','$subject','$contents','$name','$email',now(),$usetag,'$homepage','$user_ip','$passwd',0, '$upload_dir' ,'$userfile_size','$userfile_name')") or die (mysql_error());
go("main","?tbname=$tbname&page=$page");
}
#-----------------------------------------------#
#--------------- 답변 게시물을 저장하는 함수 -------------#
function reply($no) {
global $tbname,$name,$email,$usetag,$contents,$userfile,$homepage,$passwd,$user_ip,$upload_dir,$userfile_size,$userfile_name;
global $subject,$login_id,$login_name,$REMOTE_ADDR,$sort,$idx,$page;
setcookie("username",$name,time()+760000,"/");
setcookie("useremail",$email,time()+760000,"/");
setcookie("userhome",$homepage,time()+760000,"/");
//홈페이지 체크
if ($homepage) {
if (strlen($homepage)>60 ){
alert_and_back("홈페이지 주소가 60byte 넘으면 안됩니다.");
}
else homepage_check($homepage);
}
// E-mail 체크
if ($email) {
if (strlen($email)>50 ){
alert_and_back("E-mail 주소가 50byte 넘으면 안됩니다.");
}
else email_check($email);
}
// 태그 사용하지 않음에 체크 했을 경우 특수문자로 태그변환
if($usetag) {
$contents = htmlspecialchars($contents);
$usetag = "2";
} else {
$usetag = "1";
}
if(!$subject) {$subject = "제목을 입력하지 않았습니다.";}
if(!$login_id) {$login_id = "-";}
$name = "$name";
$subject = addslashes($subject);
$name = addslashes($name);
$email = addslashes($email);
// $homepage = addslashes($homepage);
$contents = addslashes($contents);
$passwd = addslashes(trim($passwd));
// $homepage = trim(ereg_replace("http://"," ",$homepage)); // "" 문자로 변환
$subject = trim(ereg_replace("","< x m p >",$subject)); // "" 문자로 변환
$user_ip = $REMOTE_ADDR; // 등록자 아이피 입력
$step_update = mysql_query("update $tbname set step=1 where no=$no");
$re=array(1,2,3,4,5,6,7,8,9,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z);
$lensub=strlen($sort);
$re_result=mysql_query("select right(sort,1) from $tbname where idx='$idx' and length(sort)=$lensub+1 order by sort desc limit 1") or die(mysql_error());
$sq=mysql_fetch_array($re_result);
if(!$sq[0]) $sqsave=$re[0]; //값이 없을경우 sub 값은 1
else if ($sq[0]=="z") $CHECK->err_msg("*^^* : 더이상 답변을 할 수 없습니다.");
else {
for ($k=0;$k<35;$k++){
if ($sq[0]==$re[$k]) {
$sqsave=$re[$k+1];
}
}
}
$sub=$sort.$sqsave;
$user_ip = $REMOTE_ADDR; // 등록자 아이피 입력
$max_query = mysql_query("select max(no) from $tbname") or die(mysql_error());
$x_no = mysql_result($max_query, 0, 'max(no)');
$x_no = $x_no+1;
// 첨부파일 있을경우에
if($userfile_name) {
$new_name = explode(".",$userfile_name);
$userfile_name = $x_no.".$new_name[1]";
upload($x_no,$userfile_name); // function file 에서 가져온다.
}
$field_name ="no,step, idx,sort,subject, contents,name,email,wdate, usetag,homepage,user_ip,passwd, hit, file_path, file_size, file_name"; // 필드이름
$query = mysql_query("insert into $tbname ($field_name) values ('','1',$idx,'$sub','$subject','$contents','$name','$email',now(),$usetag,'$homepage','$user_ip','$passwd',0, '$upload_dir' ,'$userfile_size','$userfile_name')") or die (mysql_error());
go("main","?tbname=$tbname&page=$page");
}
#-----------------------------------------------#
#--------------- 게시물을 수정하는 함수 -------------#
function modify($no) {
global $tbname,$name,$email,$usetag,$contents,$userfile,$homepage,$passwd,$user_ip,$upload_dir,$userfile_size,$userfile_name;
global $subject,$login_id,$login_name,$login_level,$REMOTE_ADDR, $no,$inpasswd;
$user_ip = $REMOTE_ADDR; // 수정하는 사람 아이피 입력
$result = mysql_query("select name, passwd from $tbname where no=$no") or die(mysql_error());
$info = mysql_fetch_array($result);
################ 태그 사용하지 않음에 체크 했을 경우 특수문자로 태그변환
if($usetag) {
$contents = htmlspecialchars($contents);
$usetag = "2";
} else {
$usetag = "1";
}
################# Addslashes ^^*
$subject = addslashes($subject);
$name = addslashes($name);
$email = addslashes($email);
// $homepage = addslashes($homepage);
$contents = addslashes($contents);
$passwd = addslashes(trim($passwd));
################## 비밀 번호 확인
if(!strcmp($info[passwd], $inpasswd) || $login_level >= 3) {
$update_result = mysql_query("update $tbname set subject='$subject', contents='$contents', usetag=$usetag, name='$name',email='$email', homepage='$homepage', user_ip='$user_ip' where no=$no") or die(mysql_error());
echo("
");
} else {
alert_and_back("비밀번호가 틀립니다. 확인해주세요");
}
echo(""); // 전체 리스트로 이동하기.
}
#-----------------------------------------------#
#--------------- 게시물을 삭제하는 함수 -------------#
function delete($r) {
global $Conn,$data_table,$tbname,$p,$login_id,$priv_delete_f;
$R = mysql_query("SELECT writer FROM $data_table WHERE s_time=$r",$Conn);
$w_id = split("\(",mysql_result($R,0,0),2);
if($w_id[0] != $login_id and !bool_priv($priv_delete_f)) {alert("작성자가 아니므로 삭제할 수 없습니다.");}
$Result = mysql_query("SELECT num,thread FROM $data_table WHERE s_time = $r",$Conn);
$num = mysql_result($Result, 0, 0);
$thread = mysql_result($Result, 0, 1);
$Sql = "SELECT thread FROM $data_table WHERE num=$num AND LENGTH(thread)=LENGTH('$thread')+1 AND LOCATE('$thread',thread)=1";
$Result = mysql_query($Sql, $Conn);
if(mysql_num_rows($Result)) {alert("답변이 있는 글은 삭제하실 수 없습니다. \\n\\n답변글을 모두 삭제하신 후 삭제하십시오.");}
$e_time = time();
$R = mysql_query("SELECT attach FROM $data_table WHERE s_time=$r",$Conn);
$attach_name = stripslashes(mysql_result($R,0,0));
if($attach_name) {
mkdir("files/trash/$r",0300);
copy("files/$r/$attach_name","files/trash/$r/$attach_name");
chmod("files/trash/$r/$attach_name",0400);
unlink("files/$r/$attach_name");
rmdir("files/$r");
}
mysql_query("UPDATE $data_table SET e_time=$e_time WHERE s_time=$r",$Conn);
go("body.main","?tbname=$tbname&page=$p");
}
#-----------------------------------------------#
#----------- 공지 메일 발신 기능 -----------#
function announ_mail($priv_mail,$r) {
global $Conn;
global $login_name,$login_email,$subject,$content,$attach_name,$attach_size,$o_tag;
$header = "From: ".mb_encode_mimeheader($login_name)." <$login_email>\nContent-Type:text/html\nReply-To:$login_email\nX-mailer:PHP/".phpversion();
$content = "".stripslashes($content)."
";
if($priv_mail == "^5") {
pass_priv($priv_mail, "Exec.공지메일 발신");
$subject = "[FMC Exec.공지] ".stripslashes($subject);
if($attach_name) {
if(!$o_tag) {$attach_size = (int) ($attach_size / 1024);}
$subject .= " (첨부포함)";
$content .= "\n
\n $attach_name (${attach_size}KB)
";
}
$R=mysql_query("SELECT member.id,name FROM member LEFT JOIN member_info on member.id=member_info.id WHERE lv >= 5",$Conn);
for($i=0;$i";
mail($mail_to,'=?UTF-8?B?'.base64_encode($subject).'?=',$content,$header);
}
}
if($priv_mail == "^2" or $priv_mail == "^1") {
if($priv_mail == "^2") {pass_priv($priv_mail, "회원공지메일 발신"); $subject = "[FMC 회원공지] ".stripslashes($subject);}
else {pass_priv($priv_mail, "전체공지메일 발신"); $subject = "[FMC 전체공지] ".stripslashes($subject);}
if($attach_name) {
if(!$o_tag) {$attach_size = (int) ($attach_size / 1024);}
$subject .= " (첨부포함)";
$content .= "\n
\n $attach_name (${attach_size}KB)
";
}
$R=mysql_query("SELECT member.id,name FROM member LEFT JOIN member_info on member.id=member_info.id WHERE lv >= 2",$Conn);
for($i=0;$i";
mail($mail_to,'=?UTF-8?B?'.base64_encode($subject).'?=',$content,$header);
}
}
if($priv_mail == "^1") {
$R=mysql_query("SELECT name,email FROM member LEFT JOIN member_info on member.id=member_info.id WHERE lv=1",$Conn);
for($i=0;$i";
mail($mail_to,'=?UTF-8?B?'.base64_encode($subject).'?=',$content,$header);
}
}
}
#----------------------------------------#
########################################################################
#----------- 화일 업로드 -----------#
function upload($idx,$userfile_name) {
global $userfile, $userfile_name, $upload_dir, $userfile_size, $maxsize;
// 파일 업로드 디렉토리 설정
$dir = $upload_dir;
if(strcmp($userfile, "none")) {
// 파일 용량 체크
$maxsize = $maxsize * 1024 * 1024;
if($userfile_size >= $maxsize) {
alert_and_back('첨부파일 용량이 초과되었습니다.');
}
// 파일이름을 배열로
$nameArr = explode(".", "$userfile_name");
//파일 확장자 분리
$extension = $nameArr[sizeof($nameArr) - 1];
// 업로드 불가 파일 확장자 체크
if(!strcmp($extension, "html") or !strcmp($extension, "htm") or !strcmp($extension, "php") or !strcmp($extension, "php3") or !strcmp($extension, "phtml") or !strcmp($extension, "inc") or !strcmp($extension, "pl") or !strcmp($extension, "cgi") or !strcmp($extension, "txt") or !strcmp($extension, "asp")) {
alert_and_back('요청하신 파일은 보안상 업로드 하실수 없습니다.');
}
// 파일 이름 확인
$exist = file_exists("$dir/$userfile_name");
// 파일 복사
$copyresult = copy($userfile, "$dir/$userfile_name");
if(!copyresult) {
alert_and_back('파일 복사에 실패했습니다. 관리자에게 문의해 주세요');
}
// 임시파일 삭제
unlink($userfile);
}
}
#----------- 화일 업로드 -----------#
?>