"); } 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("Write"); } 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("<xmp>","< 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(" <script> alert('수정되었습니다.'); </script> "); } else { alert_and_back("비밀번호가 틀립니다. 확인해주세요"); } echo("<Meta http-equiv='Refresh' content='0;URL=./board.php?tbname=$tbname&page=$page&action=list'>"); // 전체 리스트로 이동하기. } #-----------------------------------------------# #--------------- 게시물을 삭제하는 함수 -------------# 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 = "<pre>".stripslashes($content)."</pre>"; 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<br><br>\n<p align=right><font size=2><img src='http://www.fmc.pe.kr/board/img/file.gif'> <a href='http://www.fmc.pe.kr/board/files/$r/$attach_name'>$attach_name (${attach_size}KB)</a></font></p>"; } $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<mysql_num_rows($R);$i++) { $D=mysql_fetch_row($R); $mail_to = "\"$D[1]\" <$D[0]@fmc.pe.kr>"; 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<br><br>\n<p align=right><font size=2><img src='http://www.fmc.pe.kr/board/img/file.gif'> <a href='http://www.fmc.pe.kr/board/files/$r/$attach_name'>$attach_name (${attach_size}KB)</a></font></p>"; } $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<mysql_num_rows($R);$i++) { $D=mysql_fetch_row($R); $mail_to = "\"$D[1]\" <$D[0]@fmc.pe.kr>"; 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<mysql_num_rows($R);$i++) { $D=mysql_fetch_row($R); $mail_to = "\"$D[0]\" <$D[1]>"; 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); } } #----------- 화일 업로드 -----------# ?>