제로보드4는 공식적으로 더 이상 개발되지도 배포되지도 않습니다.
제로보드4를 사용하기 위한 팁보다 제로보드4를 안전하고 무사히 다른 툴로 이전하는 팁들을 게재해주시면 감사하겠습니다.
시간이 오래 지난 만큼 오래된 프로그램은 보안 및 사용성에 있어 문제가 많으니 이해 바랍니다.
글 수 4,549
이방법도 도배와 관련된 문제로 고민하다가 꼼수를 부려본 것이며
기본으로 최근게시물에서 비밀글이 나오지 않는 문제를 악용하여
도배행위를 하면서 비밀글로 해버리더군요. 흐미(뛰는*위에 나는* 있더군요ㅠㅠ)
이럴경우 게시판이 몇개만 있는경우 관리자는 확인이 쉽지만
게시판수가 많거나 바쁜경우? 일일이 확인이 어렵더군요.
이방법은 최근게시물에서 비밀글을 출력하는 방법이며 비슷한 방법이
이미 올라와 있는 내용이며 약간 꼼수를 부려서 비밀글일 경우 링크를 없애고
안내 메세지만 나오게 한겁니다.^^
이렇게 하고나니 최근게시물의 리스트만 봐도 비밀글을 전부 출력해주니 상당히 편리 하더군요.
[수정방법]
제로보드/outlogin.php 의 내용중 아래의 소스줄을
$result = mysql_query("select * from $t_board"."_$id where is_secret=0 order by no desc limit $num", $connect) or die(mysql_error());
where is_secret=0 ☜ 이걸 지워 버립니다.
(이렇게하면 비밀글이고 뭐고 상관없이 no를 기준으로 최근리스트를 원하는 갯수로 전부 출력해 버립니다.)
아래처럼 되겠죠?
$result = mysql_query("select * from $t_board"."_$id order by no desc limit $num", $connect) or die(mysql_error());
이렇게 수정한후 아래로 조금 내려가면 아래의 소스줄이 나옵니다.
아래의 소스줄을 일단 주석처리를 해주세요.
//$main = str_replace("[subject]","<a href='".$_zb_url.$target."&no=$data[no]'>".$subject."</a>",$main);
위의 소스줄 바로위에 아래의 소스를 추가합니다.
if($data[is_secret]=="1"){
$subjectc ="<a onclick="alert('안내: 이글은 비밀글 이므로 보안상 직접 들어가실 수가 없습니다.')" style="cursor:hand">";
}else{
$subjectc ="<a href='".$_zb_url.$target."&no=$data[no]'+ '+ '>";
}
$main = str_replace("[subject]","$subjectc".$subject."</a>",$main);
//$main = str_replace("[subject]","<a href='".$_zb_url.$target."&no=$data[no]'>".$subject."</a>",$main);
이렇게하면 최근게시물에서 비밀글, 공지.답글 모두 출력이 되면서
비밀글일 경우 링크에서 안내 메세지만 나오게 됩니다. 또한 클릭하는 순간
이글은 비밀글이구나 라는걸 관리자도 바로 파악이 되고 일석이조의 효과가 있더군요.ㅋ
**********안내: 이글은 비밀글 이므로 보안상 직접 들어가실 수가 없습니다.*********
즉 회원들이 최근게시물 리스트에서 제목을 클릭하여 해당게시물로 들어갈경우
이글은 비밀글입니다 ...라는 메세지가 나오는 불편함이 없어지게 됩니다.^^
기본으로 최근게시물에서 비밀글이 나오지 않는 문제를 악용하여
도배행위를 하면서 비밀글로 해버리더군요. 흐미(뛰는*위에 나는* 있더군요ㅠㅠ)
이럴경우 게시판이 몇개만 있는경우 관리자는 확인이 쉽지만
게시판수가 많거나 바쁜경우? 일일이 확인이 어렵더군요.
이방법은 최근게시물에서 비밀글을 출력하는 방법이며 비슷한 방법이
이미 올라와 있는 내용이며 약간 꼼수를 부려서 비밀글일 경우 링크를 없애고
안내 메세지만 나오게 한겁니다.^^
이렇게 하고나니 최근게시물의 리스트만 봐도 비밀글을 전부 출력해주니 상당히 편리 하더군요.
[수정방법]
제로보드/outlogin.php 의 내용중 아래의 소스줄을
$result = mysql_query("select * from $t_board"."_$id where is_secret=0 order by no desc limit $num", $connect) or die(mysql_error());
where is_secret=0 ☜ 이걸 지워 버립니다.
(이렇게하면 비밀글이고 뭐고 상관없이 no를 기준으로 최근리스트를 원하는 갯수로 전부 출력해 버립니다.)
아래처럼 되겠죠?
$result = mysql_query("select * from $t_board"."_$id order by no desc limit $num", $connect) or die(mysql_error());
이렇게 수정한후 아래로 조금 내려가면 아래의 소스줄이 나옵니다.
아래의 소스줄을 일단 주석처리를 해주세요.
//$main = str_replace("[subject]","<a href='".$_zb_url.$target."&no=$data[no]'>".$subject."</a>",$main);
위의 소스줄 바로위에 아래의 소스를 추가합니다.
if($data[is_secret]=="1"){
$subjectc ="<a onclick="alert('안내: 이글은 비밀글 이므로 보안상 직접 들어가실 수가 없습니다.')" style="cursor:hand">";
}else{
$subjectc ="<a href='".$_zb_url.$target."&no=$data[no]'+ '+ '>";
}
$main = str_replace("[subject]","$subjectc".$subject."</a>",$main);
//$main = str_replace("[subject]","<a href='".$_zb_url.$target."&no=$data[no]'>".$subject."</a>",$main);
이렇게하면 최근게시물에서 비밀글, 공지.답글 모두 출력이 되면서
비밀글일 경우 링크에서 안내 메세지만 나오게 됩니다. 또한 클릭하는 순간
이글은 비밀글이구나 라는걸 관리자도 바로 파악이 되고 일석이조의 효과가 있더군요.ㅋ
**********안내: 이글은 비밀글 이므로 보안상 직접 들어가실 수가 없습니다.*********
즉 회원들이 최근게시물 리스트에서 제목을 클릭하여 해당게시물로 들어갈경우
이글은 비밀글입니다 ...라는 메세지가 나오는 불편함이 없어지게 됩니다.^^
서성복// [subjectB] 를 사용하므로 아래처럼 해보세요.
if($data[is_secret]=="1"){
$subjectc ="<a onclick=\"alert('안내: 이글은 비밀글 이므로 보안상 직접 들어가실 수가 없습니다.')\" style=\"cursor:hand\">";
}else{
$subjectc ="<a href='#' onclick=\"window.open('".$_zb_url."view_a.php?id=".$id."&no=$data[no]','','width=500,height=350,toolbars=no,resizable=yes,scrollbars=yes')\">";
}
$main = str_replace("[subjectB]","$subjectc".$subject."</a>",$main);
if($data[is_secret]=="1"){
$subjectc ="<a onclick=\"alert('안내: 이글은 비밀글 이므로 보안상 직접 들어가실 수가 없습니다.')\" style=\"cursor:hand\">";
}else{
$subjectc ="<a href='#' onclick=\"window.open('".$_zb_url."view_a.php?id=".$id."&no=$data[no]','','width=500,height=350,toolbars=no,resizable=yes,scrollbars=yes')\">";
}
$main = str_replace("[subjectB]","$subjectc".$subject."</a>",$main);
위에 처럼 해 보았는데도 아무런 반응이 없고 똑같이 나타납니다.
$main = str_replace("[subjectB]","<a href='#' onclick=\"window.open('".$_zb_url."view_a.php?id=".$id."&no=$data[no]','','width=500,height=350,toolbars=no,resizable=yes,scrollbars=yes')\">".$subject."</a>",$main);
위에 것을 주석처리하고 바로 위에다 넣었는데도 말입니다.
물론 where is_secret=0 을 삭제하고요. 게시판에서는 비밀글로써 관리자와 작성자만 보게 되어 있는데, 여전히 최근게시물에서는 제목만 클릭하면 내용이 새창으로 보여집니다.
$main = str_replace("[subjectB]","<a href='#' onclick=\"window.open('".$_zb_url."view_a.php?id=".$id."&no=$data[no]','','width=500,height=350,toolbars=no,resizable=yes,scrollbars=yes')\">".$subject."</a>",$main);
위에 것을 주석처리하고 바로 위에다 넣었는데도 말입니다.
물론 where is_secret=0 을 삭제하고요. 게시판에서는 비밀글로써 관리자와 작성자만 보게 되어 있는데, 여전히 최근게시물에서는 제목만 클릭하면 내용이 새창으로 보여집니다.
세죠위그이// 가능합니다.^^ 현재 제사이트의 최근게시물에 보시면 그렇게 되어 있어요.
http://avaschool.net/zboard/avatar4.html<- 이링크의 최근게시물에서 질문&답변을 보세요.
소스는 대략 아래처럼 하면 됩니다.
if($data[is_secret]=="1"){
$subjectc ="<a onclick=\"alert('안내: 이글은 비밀글 이므로 보안상 직접 들어가실 수가 없습니다.')\" style=\"cursor:hand\" title=\"이글은 비밀글 입니다.\"> <img src=images/secret_head.gif border=0 align=absmiddle alt='이글은 비밀글 입니다.'> ";;
}else{
$subjectc ="<a href='".$_zb_url.$target."&no=$data[no]'>";
}
http://avaschool.net/zboard/avatar4.html<- 이링크의 최근게시물에서 질문&답변을 보세요.
소스는 대략 아래처럼 하면 됩니다.
if($data[is_secret]=="1"){
$subjectc ="<a onclick=\"alert('안내: 이글은 비밀글 이므로 보안상 직접 들어가실 수가 없습니다.')\" style=\"cursor:hand\" title=\"이글은 비밀글 입니다.\"> <img src=images/secret_head.gif border=0 align=absmiddle alt='이글은 비밀글 입니다.'> ";;
}else{
$subjectc ="<a href='".$_zb_url.$target."&no=$data[no]'>";
}
감사합니다. 필요했던 팁인데 ^^
드디어 최근 게시물도 달고 클릭하면 새창으로 안뜨고 원하는 창으로 뜨게 되었습니다.
감사합니다.. 제로보드 일주일만에 이런 기능 첨 보고 해봤는데..헐..멋집니다..팬 됐어요..
한가지, 최근 게시물을 클릭하면, 정해진 주소만이 아니고 id..머머머가 뜹니다. 이걸 해결할 방법은 없을까요??
-------------------------------
사이트 주소 : http://jkt-tour.com/index.html
톱페이지에 있는 최근게시물을 클릭하면, 연동된 페이지인 http://jkt-tour.com/asa/main_04/qna.htm만 주소창에 나왔으면 하는데, http://jkt-tour.com/asa/main_04/qna.htm?id=qna&no=19까지 죄다 나옵니다..
http://jkt-tour.com/asa/main_04/qna.htm만주소창에 나오게 하는 방법 없는지요??
---------------------
저는 홈피도 그렇지만, 제로보드도 완전 초보에, php는 커녕, html도 제대로 모르는 정말 초짜입니다.
그저 검색해서 따라하라는데로 하고만 있는 사람이지요..^^;;;
감사합니다.. 제로보드 일주일만에 이런 기능 첨 보고 해봤는데..헐..멋집니다..팬 됐어요..
한가지, 최근 게시물을 클릭하면, 정해진 주소만이 아니고 id..머머머가 뜹니다. 이걸 해결할 방법은 없을까요??
-------------------------------
사이트 주소 : http://jkt-tour.com/index.html
톱페이지에 있는 최근게시물을 클릭하면, 연동된 페이지인 http://jkt-tour.com/asa/main_04/qna.htm만 주소창에 나왔으면 하는데, http://jkt-tour.com/asa/main_04/qna.htm?id=qna&no=19까지 죄다 나옵니다..
http://jkt-tour.com/asa/main_04/qna.htm만주소창에 나오게 하는 방법 없는지요??
---------------------
저는 홈피도 그렇지만, 제로보드도 완전 초보에, php는 커녕, html도 제대로 모르는 정말 초짜입니다.
그저 검색해서 따라하라는데로 하고만 있는 사람이지요..^^;;;
홈페이지의 게시판이 불안정한 관계로 소스가 병형된 점이 있습니다.
내용을 정리하면
$result = mysql_query("select * from $t_board"."_$id where is_secret=0 order by no desc limit $num", $connect) or die(mysql_error());
위에 내용중 where is_secret=0를 삭제해 버리면 비밀글이 최근게시물에 나타납니다.
정리하면...
$result = mysql_query("select * from $t_board"."_$id order by no desc limit $num", $connect) or die(mysql_error());
위에처럼 되겠죠....
비밀글에 링크를 없애고 안내문을 띄울려면
$main = str_replace("[subject]","<a href='".$_zb_url.$target."&no=$data[no]'>".$subject."</a>",$main);
위에 내용을 찾아서주석처리해 주시고..
//$main = str_replace("[subject]","<a href='".$_zb_url.$target."&no=$data[no]'>".$subject."</a>",$main);
위에 처럼 // <= 슬러시 두개를 쳐주면 주석처리가 되겠죠...^^
그 문장 바로 위에
if($data[is_secret]=="1"){
$subjectc ="<a onclick=\"alert('안내: 이글은 비밀글 이므로 보안상 직접 들어가실 수가 없습니다.')\" style=\"cursor:hand\">";
}else{
$subjectc ="<a href='#' onclick=\"window.open('".$_zb_url."view_a.php?id=".$id."&no=$data[no]','','width=500,height=350,toolbars=no,resizable=yes,scrollbars=yes')\">";
}
$main = str_replace("[subject]","$subjectc".$subject."</a>",$main);
위에 내용을 넣어주면 됩니다....
=======================================
위에 내용도 변형될까 우려하여 txt문서로 위에 내용을 담아서 파일을 첨부합니다...
내용을 정리하면
$result = mysql_query("select * from $t_board"."_$id where is_secret=0 order by no desc limit $num", $connect) or die(mysql_error());
위에 내용중 where is_secret=0를 삭제해 버리면 비밀글이 최근게시물에 나타납니다.
정리하면...
$result = mysql_query("select * from $t_board"."_$id order by no desc limit $num", $connect) or die(mysql_error());
위에처럼 되겠죠....
비밀글에 링크를 없애고 안내문을 띄울려면
$main = str_replace("[subject]","<a href='".$_zb_url.$target."&no=$data[no]'>".$subject."</a>",$main);
위에 내용을 찾아서주석처리해 주시고..
//$main = str_replace("[subject]","<a href='".$_zb_url.$target."&no=$data[no]'>".$subject."</a>",$main);
위에 처럼 // <= 슬러시 두개를 쳐주면 주석처리가 되겠죠...^^
그 문장 바로 위에
if($data[is_secret]=="1"){
$subjectc ="<a onclick=\"alert('안내: 이글은 비밀글 이므로 보안상 직접 들어가실 수가 없습니다.')\" style=\"cursor:hand\">";
}else{
$subjectc ="<a href='#' onclick=\"window.open('".$_zb_url."view_a.php?id=".$id."&no=$data[no]','','width=500,height=350,toolbars=no,resizable=yes,scrollbars=yes')\">";
}
$main = str_replace("[subject]","$subjectc".$subject."</a>",$main);
위에 내용을 넣어주면 됩니다....
=======================================
위에 내용도 변형될까 우려하여 txt문서로 위에 내용을 담아서 파일을 첨부합니다...
이은주
카테고리별 최근게시물을 출력하여 사용하는 곳에서는 에러네요.
utlogin.php파일에서 추가한 부분은 빨간색으로 표시하였습니다.
.
.
(주석부분과 아웃로긴관련부분은 수정한 곳이 없어 생략합니다)
/*******************************************************
* 최근목록 보여주기를 위한 함수 지정
******************************************************/
// 최근 글 목록 (일반 게시판 형)
function print_bbs($skinname, $title, $id, $category, $num=5, $textlen=30, $datetype="Y/m/d") {
global $_zb_path, $_zb_url, $connect, $t_board, $admin_table;
if(!$skinname||!$id||!$title) return;
$str = zReadFile($_zb_path."latest_skin/".$skinname."/main.html");
if(!$str) {
echo "지정하신 $skinname 이라는 최근목록 스킨이 존재하지 않습니다
";
return;
}
$setup = mysql_fetch_array(mysql_query("select use_alllist from $admin_table where name='$id'"));
if($setup[use_alllist]) $target = "zboard.php?id=".$id;
else $target = "view.php?id=".$id;
if($category==0){ $category_mun="";}else{$category_mun=" and category="."$category";}
$result = mysql_query("select * from $t_board"."_$id where is_secret=0 $category_mun order by no desc limit $num", $connect) or die(mysql_error());
$tmpStr = explode("[loop]",$str);
$header = $tmpStr[0];
$tmpStr2 = explode("[/loop]",$tmpStr[1]);
$loop = $tmpStr2[0];
$footer = $tmpStr2[1];
(이하부분도 수정한 부분이 없어 생략합니다)
.
.
사용하실 때는..
기존의 최근목록 불러오기 소스에서
기존의소스 : print_bbs("스킨이름", "타이틀", "게시판이름", 목록갯수, 글자제한)
수정후소스 : print_bbs("스킨이름", "타이틀", "게시판이름", 카테고리넘버, 목록갯수, 글자제한)
카테고리넘버는... 카테고리 순서대로 1부터 시작됩니다.
카테고리별로 읽고 싶지 않을때에는 카테고리넘버를 0으로 지정해 주시면 됩니다.
또한 설문조사나 겔러리에서는 적용되지 않습니다.
이걸 사용중이었는데요,, 방법이 따로 있는지 알려주시면 감사하겠습니다.
utlogin.php파일에서 추가한 부분은 빨간색으로 표시하였습니다.
.
.
(주석부분과 아웃로긴관련부분은 수정한 곳이 없어 생략합니다)
/*******************************************************
* 최근목록 보여주기를 위한 함수 지정
******************************************************/
// 최근 글 목록 (일반 게시판 형)
function print_bbs($skinname, $title, $id, $category, $num=5, $textlen=30, $datetype="Y/m/d") {
global $_zb_path, $_zb_url, $connect, $t_board, $admin_table;
if(!$skinname||!$id||!$title) return;
$str = zReadFile($_zb_path."latest_skin/".$skinname."/main.html");
if(!$str) {
echo "지정하신 $skinname 이라는 최근목록 스킨이 존재하지 않습니다
";
return;
}
$setup = mysql_fetch_array(mysql_query("select use_alllist from $admin_table where name='$id'"));
if($setup[use_alllist]) $target = "zboard.php?id=".$id;
else $target = "view.php?id=".$id;
if($category==0){ $category_mun="";}else{$category_mun=" and category="."$category";}
$result = mysql_query("select * from $t_board"."_$id where is_secret=0 $category_mun order by no desc limit $num", $connect) or die(mysql_error());
$tmpStr = explode("[loop]",$str);
$header = $tmpStr[0];
$tmpStr2 = explode("[/loop]",$tmpStr[1]);
$loop = $tmpStr2[0];
$footer = $tmpStr2[1];
(이하부분도 수정한 부분이 없어 생략합니다)
.
.
사용하실 때는..
기존의 최근목록 불러오기 소스에서
기존의소스 : print_bbs("스킨이름", "타이틀", "게시판이름", 목록갯수, 글자제한)
수정후소스 : print_bbs("스킨이름", "타이틀", "게시판이름", 카테고리넘버, 목록갯수, 글자제한)
카테고리넘버는... 카테고리 순서대로 1부터 시작됩니다.
카테고리별로 읽고 싶지 않을때에는 카테고리넘버를 0으로 지정해 주시면 됩니다.
또한 설문조사나 겔러리에서는 적용되지 않습니다.
이걸 사용중이었는데요,, 방법이 따로 있는지 알려주시면 감사하겠습니다.

먼저 outlogin.php파일을 수정해서 최근게시물을 새창띄우기로 사용중입니다.
$main = str_replace("[subject]","<a href='".$_zb_url.$target."&no=$data[no]'>".$subject."</a>",$main);
그 아래에
$main = str_replace("[subjectB]","<a href='#' onclick=\"window.open('".$_zb_url."view_a.php?id=".$id."&no=$data[no]','','width=500,height=350,toolbars=no,resizable=yes,scrollbars=yes')\">".$subject."</a>",$main);
라는 걸 추가했습니다. view_a.php로 연결되어 있습니다.
view_a.php의 전체 내용
<?
if(!$_view_included) {include "_head.php";}
$data=mysql_fetch_array(mysql_query("select * from $t_board"."_$id where no='$no'"));
$memo = stripslashes($data[memo]);
if($data[use_html]<2) $memo = nl2br($memo);
else $memo = strip_tags($memo);
$filename1 = $data[file_name1];
$filename2 = $data[file_name2];
if(eregi("\.gif|\.jpg",$filename1))$uploadimage1 = "<img src=".$_zb_url.$filename1." border=0><br>"; else $uploadimage1="";
if(eregi("\.gif|\.jpg",$filename2))$uploadimage2 = "<img src=".$_zb_url.$filename2." border=0><br>"; else $uploadimage2="";
$memo = autolink($uploadimage1.$uploadimage2.$memo);
if($data[ismember]) {
$imageBoxPattern = "/\[img\:(.+?)\.(jpg|gif)\,align\=([a-z]){0,}\,width\=([0-9]+)\,height\=([0-9]+)\,vspace\=([0-9]+)\,hspace\=([0-9]+)\,border\=([0-9]+)\]/i";
$memo=preg_replace($imageBoxPattern,"<img src='".$_zb_url."icon/member_image_box/$data[ismember]/\\1.\\2' align='\\3' width='\\4' height='\\5' vspace='\\6' hspace='\\7' border='\\8'>", stripslashes($memo));
}
$subject=stripslashes($data[subject]);
?>
<link rel="stylesheet" href="../dex.css" type="text/css">
<div align=center>
<table align=center cellspacing=0 cellpadding=8 width=480 height=350>
<tr>
<td bgcolor=0066CC align=left colspan=2>
<font color=white><b><?=$subject?></b></font>
</td>
</tr>
<tr>
<td bgcolor=EEEEEE colspan=2>
<br>
<?=$memo?>
</td>
</tr>
<tr>
<td bgcolor=0066CC align=center colspan=2>
<font color=white><a href=# onclick=window.close()>창닫기</a></font>
</td>
</tr>
</table>
</div>
이럴 경우에는 어떻게 해야 최근게시물에 비밀글 제목은 나오고 내용은 볼 수 없게 하나요?
현재 게시판에서는 비밀글 내용을 볼 수 되어 있지만 메인화면 최근게시물에서는 비밀글 제목을 클릭하면 내용이 새창으로 보여집니다.