이제 하루만 지나면 즐거운 추석 연휴입니다.
하지만.. 전 내일 당직이라 내일(토요일)에는 출근을 해야 한답니다.
뭐하는 것도 없다고 하는 당직이지만..
내일 하루만 잘 버티면 일,월,화,수 까지 쭉 쉴수가 있답니다..
추석 연휴라도 특별히 해야 하는 것은 없지만..
그럼 모두들 즐거운 추석 연휴 보내시길 빕니다..
이제 하루만 지나면 즐거운 추석 연휴입니다.
하지만.. 전 내일 당직이라 내일(토요일)에는 출근을 해야 한답니다.
뭐하는 것도 없다고 하는 당직이지만..
내일 하루만 잘 버티면 일,월,화,수 까지 쭉 쉴수가 있답니다..
추석 연휴라도 특별히 해야 하는 것은 없지만..
그럼 모두들 즐거운 추석 연휴 보내시길 빕니다..
- 오래전에 nzeo.com에 공개한 팁입니다. 관리를 위해 옮겨놓습니다.
http://www.nzeo.com/bbs/zboard.php?id=cgi_tip&page=1&sn1=&divpage=1&sn=on&ss=on&sc=off&keyword=유메미루&select_arrange=headnum&desc=asc&no=4617
수많은 분들이 포인트 랭킹이라고 해서 전체순위를 보여주는 프로그램을 많이 보셨으리라 봅니다.,
이번 프로그램은 그 순위중에서 해당별로 출력을 해주는 것입니다.
1. 디비 필드 만들기.
다른 방법도 많이 생각을 해봤지만 날마다 디비에 저장하여 뽑는 편이 제일 편한 방법일거라고 생각하여 디비자원을 조금 쓰도록 합니다.
위의 프로그램을 복사하여 제로보드 폴더에 옮기신후 실행하여 주시면 생성이 됩니다.
<?
$host = "localhost";
$user = "******"; //mysql ID
$password = "******"; //mysql PW
$dbname = "******"; //DataBase Name$query = "
CREATE TABLE lank (
no int(11) NOT NULL auto_increment,
member_no int(11) NOT NULL default '',
member_id varchar(20) NOT NULL default '',
wp int(20) NOT NULL default '',
cp int(20) NOT NULL default '',
check_date int(13) NOT NULL default '',
PRIMARY KEY (no),
UNIQUE KEY no (no)
) TYPE=MyISAM;";
//디비커넥션
mysql_connect($host,$user,$password);
//쿼리실행
$result = mysql_db_query($dbname,$query);
?>
2. 프로그램 보기
<?
/*************************************************************
* 월별 글쓰기 코멘트 순위 표기하기
*
* 프로그래밍 : 박상연(yumemiru@zeeps.com)
*
* 홈페이지 : http://zeeps.com
*
* 이 프로그램은 월별 글쓴수와 코멘트수를 표기하기 위해 만들었습니다..
*
* 저작권 명시를 삭제하시면 안됩니다.
*
* 원하시는대로 수정하여 사용하실수 있으나 수정후 배포는 하지마시기 바랍니다.
*
************************************************************/$now = time(); // 현재 시간을 초단위로 구해줍니다. time()사용하면 유니버설스템프타임 여튼 이걸구해줍니다./
$year= date('Y');
$month= date('m');
$day=date('d');
$hour = date('H'); // 현재 몇시인지 구해줍니다. h는 12시간으로 표기 H는 24시간으로 표기해줍니다./
$min = date('i'); // 현재 몇분인지 구해줍니다./
$sec = date('s'); // 현재 몇초인지 구해줍니다./
$to_day = mktime(0,0,0,$month,$day,$year); //특정하게 지정된 날짜의 시간을 초단위로 구해줍니다./
$first_day = mktime(0,0,0,$month,1,$year); // 매월 1일을 구함./
$end_day=date('t'); // 이달의 마지막날.
$lankSql = "select * from lank where check_date = '$to_day' order by wp desc limit 1";
$count_lank = mysql_query($lankSql,$connect);$count_ok=mysql_num_rows($count_lank);
if($count_ok==0)
{
// 제가 사용하는 홈페이지에서는 마지막글쓴날을 표기하도록 하였으므로 이런 방식을 사용합니다.
$temp2 =mysql_query("select no,name from zetyx_member_table where last_write >'$first_day'",$connect);
//$temp2 =mysql_query("select no,name from zetyx_member_table",$connect);
$target_board = "freeboard||q_a||tips||oekaki||to_admin||rk_skin"; //생성한 게시판 아이디를 모두 적는다
$arry_board = explode("||",$target_board);
$target_borad_name= "자게||질답||팁||오에||정보||스킨";
$title_name_temp = explode("||",$target_borad_name);
$boardTotal = sizeof($arry_board);while($mem_data = mysql_fetch_array($temp2)){
$mem_no = $mem_data[no];
$mem_name = $mem_data[name];$write = 0;
$comment = 0;
for ($k=0;$boardTotal>$k;$k++)
{
$board_name=$arry_board[$k];
$countSql = "select * from zetyx_board_$board_name where ismember='$mem_no' and reg_date>'$first_day'";
$count = mysql_query($countSql,$connect);
$write = $write + mysql_num_rows($count);$countSql = "select * from zetyx_board_comment_$board_name where ismember='$mem_no' and reg_date>'$first_day'";
$count = mysql_query($countSql,$connect);
$comment = $comment + mysql_num_rows($count);
}
mysql_query("insert into lank (member_no,member_name,wp,cp,check_date) values ('$mem_no','$mem_name','$write','$comment','$to_day')") or error(mysql_error());
}
// 불필요한 디비 자원을 삭제합니다.
$result = mysql_query("delete from lank where check_date < '$to_day'");
}
?>
<table border=0 cellspacing=0 cellpadding=0 width=185>
<tr>
<td height=27 bgcolor=445599>
< img src=http://zeeps.com/ver4/images/t.gif border=0 height=5>< font color=white> < b><?=$month?>월의 글올림이(~<?=$month?>월<?=$day?>일)
</td>
</tr>
</table>< img src=http://zeeps.com/ver4/images/t.gif height=2>
<table border=0 width=185 cellspacing=1 cellpadding=8 bgcolor=A9DDDE>
<tr><td valign=top bgcolor=white>< img src=http://zeeps.com/ver4/images/t.gif border=0 height=4><?
$lankSql = "select * from lank where check_date = '$to_day' order by wp desc limit 5";
$count_lank = mysql_query($lankSql,$connect);
$i=1;while($lank_data = mysql_fetch_array($count_lank)){
$mem_no=$lank_data[member_no];
$mem_name=$lank_data[member_name];$private_icon_file=$_zb_path."icon/private_icon/".$mem_no.".gif";
if(@file_exists($private_icon_file)) {
$private_icon_file=$_zb_url."icon/private_icon/".$mem_no.".gif";
$mem_name="< img src='$private_icon_file' border=0 align=absmiddle>".$mem_name;
}
else{
$mem_name="< img src='".$_zb_url."images/zs.gif' border=0 align=absmiddle>".$mem_name;
}$write_no=$lank_data[wp];
$comment_no=$lank_data[cp];
echo "$i 위 $mem_name ($write_no)
";
echo "< img src=http://zeeps.com/ver4/images/t.gif border=0 height=10>
";
$i++;
}
echo "< a href=http://zeeps.com target=_blak>< font color=orange>program by 유메미루";?>
</td></tr>
</table>
- 오래전에 nzeo.com에 공개한 팁입니다. 관리를 위해 옮겨놓습니다.
기존에 아이쿠님이 만드신 게시물 신고 하기 기능의 경우에는 최고 관리자에게만 쪽지가 갑니다.
이경우 모든 게시판에서 오는 쪽지를 최고 관리자가 다 보고 다시 해당 게시판 관리자에게
다시 쪽지를 보내거나 최고 관리자가 일일이 해결을 해야 하는 문제점이 있었죠??
그래서 해당 게시판의 관리자(들)에게 직접 쪽지를 보내버리는 방법입니다.
기존 아이쿠님의 자료를 조금 수정을 해야 하므로 먼저 아이쿠님의 자료를 받아 보시기 바랍니다.
1. report_memo1.php 파일에서 수정사항: 빨간 글씨부분을 추가..
<input type=hidden name=memodate value="<?=$reg_date?>">
<input type=hidden name=id value="<?=$id?>">
<input type=hidden name=memo value="< a href='view.php?id=<?=$id?>&no=<?=$no?>'>< font color=orange>게시물로 바로 이동하시려면 여기를 누르세요.">
2.report_memo2.php 파일에서의 수정사항: 기존의 쪽지보내는 부분을 삭제하고 빨간 글씨 부분으로 대체.
$reg_date=time();
$temp_no =mysql_fetch_array(mysql_query("select * from zetyx_admin_table where name='$id'"));
$board_no=$temp_no[no];
$board_name_temp=mysql_query("select * from zetyx_member_table where board_name like '%$board_no%'");
while($data=mysql_fetch_array($board_name_temp))
{
$manage_no=$data[no];
$manage_name=$data[name];
$manage_board_no=explode(",",$data[board_name]);
$count=count($manage_board_no);
for($i=0;$i<$count;$i++)
{
if($manage_board_no[$i]==$board_no)
{
mysql_query("insert into $get_memo_table (member_no,member_from,subject,memo,readed,reg_date) values ('$manage_no','$member[no]','$subject','$memo2',1,'$reg_date')") or error(mysql_error());
// mysql_query("insert into $send_memo_table (member_to,member_no,subject,memo,readed,reg_date) values ('1','$member[no]','$subject','$memo2',1,'$reg_date')") or error(mysql_error());
mysql_query("update $member_table set new_memo=1 where no='$manage_no'") or error(mysql_error());
}
}
}
위와 같이 하면 관리자가 몇명이든 알아서 해당 관리자에게로 쪽지가 전달이 됩니다.
저의 경우에는 신고를 한 사람의 경우에는 보낸 쪽지함에 자료를 남기지 않도록 하였습니다.
자신이 쪽지 보낸거 아는데 꼭 볼 필요는 없을거 같고, DB여유도 많기 않기 떄문입니다.
- 오래전에 nzeo.com에 공개한 팁입니다. 관리를 위해 옮겨놓습니다.
아마도 하나의 홈페이지를 여러 사람들이 관리하는 사람들은 가끔 겪는 일일듯 합니다.
이전 게시판관리자가 더이상 관리를 못하고 다른 사람으로 바뀌었을떄..
그떄마다 setup 파일이나 header 파일을 수정하는 수고를 해야했죠,.,
저도 하나의 홈페이지를 많은 사람들과 같이 관리를 하다 보니 그런일이 빈번하더군요,
그래서 귀차니즘의 일환으로 만들어 버렸습니다.
이번에는 고쳐야 할 파일이 달랑 두개 뿐입니다.
먼저 첨부된 파일을 제로보드 폴더에 올려주시기 바랍니다.
그다음 zboard.php 파일 수정.
// 헤더 출력
$_skinTimeStart = getmicrotime();
head('',"script_list.php");
// 관리자 출력 by 유메미루(yumemiru@zeeps.com)
include "manager_board.php";
// 상단 현황 부분 출력
include "$dir/setup.php";
$_skinTime += getmicrotime()-$_skinTimeStart;
마지막으로 view.php 파일 수정
// 헤더 출력
if(!$_view_included)head();
// 관리자 출력 by 유메미루(yumemiru@zeeps.com)
if(!$_view_included) include "manager_board.php";
// 상단 현황 부분 출력
if(!$_view_included) {
$_skinTimeStart = getmicrotime();
include "$dir/setup.php";
$_skinTime += getmicrotime()-$_skinTimeStart;
}
파란색으로 된 부분만 첨부하면 되니 큰 어려움은 없을거 같네요,,
manager_borad.php
Free™의 요청에 의해 관리자가 없는 경우 나타나지 않도록 수정 2003년 7월 12일
<?
// 라이브러리 함수 파일 인크루드
require "lib.php";
// DB 연결
if(!$connect) $connect=dbConn();
$temp_no =mysql_fetch_array(mysql_query("select * from zetyx_admin_table where name='$id'"));
$board_no=$temp_no[no];
$board_name=$temp_no[title];
echo "<table border=0 cellspacing=0 cellpadding=0 width=$width><tr><td align=right>";
$board_name_temp=mysql_query("select * from zetyx_member_table where board_name like '%$board_no%'");
$board_ok==0;
while($data=mysql_fetch_array($board_name_temp))
{
$manage_no=$data[no];
$manage_name=$data[name];
$manage_board_no=explode(",",$data[board_name]);
$count=count($manage_board_no);
for($i=0;$i<$count;$i++)
{
if($manage_board_no[$i]==$board_no)
{
if($board_ok==0)
{
echo "< font color=blue>< b>$board_name 관리자< /b>< /font>: ";
$board_ok++;
}
$manage_name="".$manage_name;
$manage_name=$manage_name."";
$private_icon_file=$_zb_path."icon/private_icon/".$manage_no.".gif";
if(@file_exists($private_icon_file))
{
$private_icon_file=$_zb_url."icon/private_icon/".$manage_no.".gif";
$manage_name="< img src='$private_icon_file' border=0 align=absmiddle>".$manage_name;
}
else{
$manage_name="< img src='".$_zb_url."images/zs.gif' border=0 align=absmiddle>".$manage_name;
}
echo "$manage_name ";
}
}
}
echo "</td></tr></table>";
?>
-오래전에 nzeo.com에 공개한 팁입니다. 관리를 위해 이곳에 옮겨 놓습니다.
아마도 이런 팁들을 많이 봐서 이제는 지칠대로 지쳤으리라 생각이 됩니다만..
이번 버젼은 게시판이 생성이 될떄마다 write_ok.php 파일에 추가를 하는 버젼이 아니라
게시판 관리자 모드에서 기입을 하여 수정하는 방식이므로 그러한 수고가 덜어지는 종합 버젼이라고 생각하시면 됩니다.
하지만 이전의 파일 수정 버젼은 한두개의 파일만 고치면 됐지만
지금의 버젼은 좀(??) 많은 파일을 수정해야 하기 떄문에 잘 생각해보고 하시기 바랍니다.
아래는 편의상 경어를 생략하니 알아서 봐주시기 바랍니다.
1 . DB에 추가하기.
zetyx_admin_table 에 write_point,comment_point 라는 두개의 필드를 추가한다.
추가시 각각 int(11)정도로 하면 무리가 없다. 물론 디폴트값은 각각 1이다.
디비에 필드를 추가할줄 모르는 사람은 좀더 도(??)를 딱고 와서 보기 바란다.
2. 게시판 관리자 모드 수정하기
관련 파일 : admin/admin_modify_board.php
<tr height=25 bgcolor=#e0e0e0>
<td align=right style=font-family:Tahoma;font-size:8pt;>최고 업로드 가능 용량 </td>
<td >
<input type=text name=max_upload_size value="<?=$data[max_upload_size]?>" size=10 class=input style=border-color:#b0b0b0> byte (최고한도 : <?echo get_cfg_var("upload_max_filesize"); ?> byte)
</td>
</tr>
<tr height=25 bgcolor=#e0e0e0>
<td align=right style=font-family:Tahoma;font-size:8pt;>글쓴수에 따른 제니 </td>
<td >
<input type=text name=write_point value="<?=$data[write_point]?>" size=10 class=input style=border-color:#b0b0b0> Zeny
</td>
</tr>
<tr height=25 bgcolor=#e0e0e0>
<td align=right style=font-family:Tahoma;font-size:8pt;>코멘트에 따른 제니 </td>
<td >
<input type=text name=comment_point value="<?=$data[comment_point]?>" size=10 class=input style=border-color:#b0b0b0> Zeny
</td>
</tr>
<? if($data[use_cart]) $check="checked"; else $check=""; ?>
<tr height=25 bgcolor=#e0e0e0>
<td align=right style=font-family:Tahoma;font-size:8pt;>바구니 기능 </td>
<td >
<input type=checkbox name=use_cart value='1' <?echo $check;?>>
바구니 기능 사용
</td>
</tr>
빨간 색으로 된 부분을 원하는 자리에 넣으면 된다..필자의 경우 NZEO라그나로크 팬사이트의 웹마스터로서 부득이 하게 ZENY라는 돈표시를 하였으나 각자 원하는 단위를 사용하면 될듯..
관련 파일 : admin/admin_exec_board.php
@mysql_query("update $admin_table set
only_board='$only_board',skinname='$skinname',header='$header',footer='$footer',header_url='$header_url',footer_url='$footer_url',
bg_image='$bg_image',bg_color='$bg_color',table_width='$table_width',memo_num='$memo_num', page_num='$page_num', cut_length='$cut_length', use_category='$use_category', use_html='$use_html',max_upload_size='$max_upload_size',
use_filter='$use_filter',use_status='$use_status',use_pds='$use_pds',use_homelink='$use_homelink',
title='$title',pds_ext1='$pds_ext1',pds_ext2='$pds_ext2',write_point='$write_point',comment_point='$comment_point',
use_filelink='$use_filelink',use_cart='$use_cart',use_autolink='$use_autolink',use_showip='$use_showip',
use_comment='$use_comment',use_formmail='$use_formmail',use_showreply='$use_showreply', use_secret='$use_secret', filter='$filter', avoid_tag='$avoid_tag', avoid_ip='$avoid_ip', use_alllist='$use_alllist' where no='$no'") or Error("게시판의 기능설정 변경시 에러가 발생하였습니다");
movepage("$PHP_SELF?group_no=$group_no&exec=view_board&no=$no&exec2=modify&page=$page&page_num=$s_page_num");
}
게시판 수정부분에서 빨간 부분만을 추가하면 사용할수 있는 준비가 모두끝이다.
3. 모든 게시판에 적용되게 수정하기
관련 파일 : _head.php
위의 수정을 다 하였다면 모든 게시판에 적용이 될수 있도록 하기 위한 준비를 해야 한다.
// 게시판의 가로크기 설정
$width=$setup[table_width];
// 각각의 글쓴수에 따른 점수 설정 by 유메
$write_point=$setup[write_point];
$comment_point=$setup[comment_point];
// 카테고리 읽어오기
위의 빨간 글씨부분도 어느 부분에 넣던지 상관없으니 알아서 넣으면 된다..
4. 글쓸때 포인트 주기
관련 파일 : write_ok.php
// 회원일 경우 해당 해원의 점수 주기
if($mode=="write"||$mode=="reply") @mysql_query("update $member_table set point1=point1+$write_point where no='$member[no]'",$connect) or error(mysql_error());
5. 코멘트쓸때 포인트 주기
관련 파일 : comment_ok.php
// 회원일 경우 해당 해원의 점수 주기
@mysql_query("update $member_table set point2=point2+$comment_point where no='$member[no]'",$connect) or error(mysql_error());
6. 글 삭제시 점수 빼기
관련 파일 : delete_ok.php , del_comment_ok.php
delete_ok.php 에는 _head.php 파일을 인크루드 하지 않기 때문에 상단에 다시한번 아래의 구문을 넣어주어야 한다. 그렇지 않으면 점수를 빼지 않는 경우가 발생한다,
// 각각의 글쓴수에 따른 점수 설정 by 유메
$write_point=$setup[write_point];
$comment_point=$setup[comment_point];
나머지는 상단의 경우에서 "+" 를 "-" 로 고쳐주면 된다.
아직까지 이 긴글을 읽어준 모든 분께 감사를 드립니다.
-오래전에 nzeo.com에 공개한 팁입니다. 관리를 위해 옮겨놓습니다. http://www.nzeo.com/bbs/zboard.php?id=cgi_tip&page=1&sn1=&divpage=1&sn=on&ss=on&sc=off&keyword=유메미루&select_arrange=headnum&desc=asc&no=4120
아마 아바타샵을 같이 운영하시는 운영자님들은 잘 아실겁니다. |
- 오래전에 nzeo.com에 공개했던 팁입니다. 관리를 위해 이곳에 옮겨놓습니다.
오랜만에 팁을 발표하네요,,
나름대로 2년여 동안 사이트를 관리하다 보니
이젠 누가 어떤 게시판을 관리하고 있는지 잊어버릴때가 많아서
만들었습니다..
압축 파일을 다운 받아서 제로보드 폴더에 올리시면 곧 바로 사용가능합니다.
-오래전에 nzeo.com에 공개를 했던 팁입니다. 관리를 위해 이곳에 옮겨놓습니다.
아마 제로보드의 그룹을 이용하여 회원을 관리하시는분들이 많은걸로 알고 있습니다.
하지만 각각의 그룹의 특성상 몇몇 게시판은 모든 그룹이 글을 쓰는 공개된 게시판이어야 하고, 각 그룹의 게시판은 다른 그룹에서 볼수가 없어야 겠죠..
저도 이문제 때문에 고심하다가 드디어 방법을 찾아냈습니다. 그럼 순서대로 이야기를 할꼐요..
먼저 디비를 열어야 합니다. 그룹넘버(group_no)를 이용하게 되면 다른 그룹에서도 글을 쓸수 있기떄문에 새로운 필드를 추가해야 합니다.
전 제가 관리하는 홈페이지의 특성상 zetyx_member_table 에 guild_no 라는 필드를 추가했습니다.
특성은 interger(10)를 주시면되고 디폴트값을 0을 주셔야 합니다.
그래야 초기에 가입한 사람들의 guild_no가 0 으로 셋팅되겠죠..
디비 수정을 다 하셨다구요,,이게 젤 어려운건데 수고하셨읍니다.
그럼 다음 단계로 넘어가죠..
이번 단계는 관리자/회원정보 화면에서 길드의 숫자를 보이게 하는겁니다.
admin 폴더에 보시면 admin_modify_member.php파일이 있을겁니다.
여기 중간에다가 아래를 복사해서 삽입해주세요,..
<tr height=22 align=center>
<td bgcolor=#a0a0a0 align=right style=font-family:Tahoma;font-size:8pt;font-weight:bold;>Guild_no </td>
<td align=left bgcolor=#e0e0e0> <input type=text name=guild_no size=10 maxlength=255 value="<?=$member_data[guild_no]?>" class=input style=border-color:#b0b0b0>기존길드는 0, 신생길드생길시 차례대로증가시킬것.</td>
</tr>
전 E-mail 위에다 했읍니다만 위치가 여러분 마음대로하시면 됩니다.
그 다음 단계는 수정이 가능토록 하는겁니다.
마찬가지로 admin 폴더에 보시면 admin_exec_member.php파일이 있을겁니다.
열어보시면 //회원정보를 변경하는부분 이라는 곳이 있죠. 여기에 다음을 삽입해주세요..
if($guild_no) $que.=",guild_no='$guild_no'";
if($email) $que.=",email='$email'";
전 이전과 마찬가지로 E-mail부분위에삽입을 했습니다.
이제 마지막 단계입니다.
특정 그룹만 사용할 스킨을 선택하고 수정하는거죠..
먼저 원하시는 스킨을 선택하시고, 스킨 폴더의 setup.php 파일을 엽니다.
파일의 상단에 아래를 삽입하면 됩니다.
<?
include "./lib.php";
$connect=dbConn();
$member=member_info();
if($member[level] != "1" && $member[guild_no] != "1" ) Error("죄송합니다. <BR>타길드는 접근할수 없습니다.");
?>
위를 보시면 아시겠지만 레벨이 1인 사람과 길드넘버가 1인 사람만 접근이 가능한걸로 되어 있습니다. 사전에 어드민/회원관리 화면에서 회원에 따라 guild_no를 수정해주시면 다른 사람은 접근을 하지 못하겠죠..
-- 오래전에 nzeo.com에 공개한 팁입니다. 관리(??)를 위해 이곳으로 옮겨놓습니다.
아마 제로보드를 사용하시는 분들중에 게시판 디비의 수가 적어서 활용을 못하시는분들이 많을걸로 압니다.
저도 이래저래 하다보면 필드가 적어서 디비를 추가하는 경우가 많은데 그것보다는 예비 필드를 활용하므로서 디비를 수정하기보단 편하게 추가하는 편이 낳을거 같아 몇자 적어봅니다.
스킨 만드실때 고려할 상황인데요..보통 스킨 상의 write.php 문에 해당합니다.
<tr>
<td style='font-family:Tahoma; font-size:8pt' align=right>예비 필드 1</td>
<td> <input type=text name=zx value="<?=$data[x]?>" <?=size(20)?> maxlength=100 class=input></td>
</tr>
<tr>
<td style='font-family:Tahoma; font-size:8pt' align=right>예비 필드 2</td>
<td> <input type=text name=zy value="<?=$data[y]?>" <?=size(20)?> maxlength=100 class=input></td>
</tr>
위에서 처럼 name=zx , name=zy 로 받으셔야 제대로 작동을 합니다, 이것은 제로님이 write_ok.php 문 상에서 $x=$zx , $y=$zy 로 받으셨기 때문에 어쩔수 가 없더군요.
두번째 고칠 파일은 제로보드 폴더의 write.php 문입니다.
if($mode=="modify") {
// 비밀글이고 패스워드가 틀리고 관리자가 아니면 리턴
if($data[is_secret]&&!$is_admin&&$data[ismember]!=$member[no]&&$HTTP_COOKIE_VARS[zb_s_check]!=$setup[no]."_".$no) error("정상적인 방법으로 수정하세요");
$name=stripslashes($data[name]); // 이름
$email=stripslashes($data[email]); // 메일
$homepage=stripslashes($data[homepage]); // 홈페이지
$subject=$data[subject]=stripslashes($data[subject]); // 제목
$subject=str_replace("\"",""",$subject);
$homepage=str_replace("\"",""",$homepage);
$name=str_replace("\"",""",$name);
$sitelink1=str_replace("\"",""",$sitelink1);
$sitelink2=str_replace("\"",""",$sitelink2);
// 추가 필드 사용을 위한 추가 by 유메
$x=stripslashes($data[x]);
$y=stripslashes($data[y]);
위부분을 찾으셔서 위의 두줄을 추가해주세요.. 이것을 해주셔야 저장된 게시물을 수정할때 x,y 의 내용이 보이게 됩니다.
세번째 수정할 파일은 write_ok.php 문입니다. 조금 바꾸어야 할 부분이 많은 파일이니 주의하시기 바랍니다.
// 각종 변수의 addslashes 시킴;;
$homepage=addslashes(del_html($homepage));
// 예비 추가 필드 사용을 위한 추가 by 유메
$x=addslashes(del_html($x));
$y=addslashes(del_html($y));
/***************************************************************************
* 수정글일때
**************************************************************************/
minus_division($s_data[division]);
// 예비 필드 수정모드 사용을 위한 추가 by 유메
@mysql_l_query("update $t_board"."_$id set headnum='$headnum',prev_no='$prev_no',next_no='$next_no',child='$child',depth='$depth',arrangenum='$arrangenum',father='$father',name='$name',email='$email',homepage='$homepage',subject='$subject',memo='$memo',sitelink1='$sitelink1',sitelink2='$sitelink2',use_html='$use_html',reply_mail='$reply_mail',is_secret='$is_secret',x='$x',y='$y',category='$category' $del_que1 $del_que2 where no='$no'") or error(mysql_error());
plus_division($division);
// 일반글 -> 공지
@mysql_query("update $t_board"."_$id set division='$division',headnum='$headnum',prev_no='$prev_no',next_no='$next_no',child='$child',depth='$depth',arrangenum='$arrangenum',father='$father',name='$name',email='$email',homepage='$homepage',subject='$subject',memo='$memo',sitelink1='$sitelink1',sitelink2='$sitelink2',use_html='$use_html',reply_mail='$reply_mail',is_secret='$is_secret',x='$x',y='$y',category='$category' $del_que1 $del_que2 where no='$no'") or error(mysql_error());
// 일반->일반, 공지->공지 일때
} else {
@mysql_query("update $t_board"."_$id set name='$name',subject='$subject',email='$email',homepage='$homepage',memo='$memo',sitelink1='$sitelink1',sitelink2='$sitelink2',use_html='$use_html',reply_mail='$reply_mail',is_secret='$is_secret',x='$x',y='$y',category='$category' $del_que1 $del_que2 where no='$no'") or error(mysql_error());
/***************************************************************************
* 답변글일때
**************************************************************************/
// 답글 데이타 입력;;
mysql_query("insert into $t_board"."_$id (division,headnum,arrangenum,depth,prev_no,next_no,father,child,ismember,memo,ip,password,name,homepage,email,subject,use_html,reply_mail,category,is_secret,sitelink1,sitelink2,file_name1,file_name2,s_file_name1,s_file_name2,x,y,reg_date,islevel) values ('$division','$headnum','$arrangenum','$depth','$prev_no','$next_no','$father','$child','$member[no]','$memo','$ip','$password','$name','$homepage','$email','$subject','$use_html','$reply_mail','$category','$is_secret','$sitelink1','$sitelink2','$file_name1','$file_name2','$s_file_name1','$s_file_name2','$x','$y','$reg_date','$member[is_admin]')") or error(mysql_error());
/***************************************************************************
* 신규 글쓰기일때
**************************************************************************/
mysql_query("insert into $t_board"."_$id (division,headnum,arrangenum,depth,prev_no,next_no,father,child,ismember,memo,ip,password,name,homepage,email,subject,use_html,reply_mail,category,is_secret,sitelink1,sitelink2,file_name1,file_name2,s_file_name1,s_file_name2,x,y,reg_date,islevel) values ('$division','$headnum','$arrangenum','$depth','$prev_no','$next_no','$father','$child','$member[no]','$memo','$ip','$password','$name','$homepage','$email','$subject','$use_html','$reply_mail','$category','$is_secret','$sitelink1','$sitelink2','$file_name1','$file_name2','$s_file_name1','$s_file_name2','$x','$y','$reg_date','$member[is_admin]')") or error(mysql_error());
위를 잘 참조하시고 필드 넉넉하게 쓰세요!!!아마 제로보드를 사용하시는 분들중에 게시판 디비의 수가 적어서 활용을 못하시는분들이 많을걸로 압니다.
저도 이래저래 하다보면 필드가 적어서 디비를 추가하는 경우가 많은데 그것보다는 예비 필드를 활용하므로서 디비를 수정하기보단 편하게 추가하는 편이 낳을거 같아 몇자 적어봅니다.
스킨 만드실때 고려할 상황인데요..보통 스킨 상의 write.php 문에 해당합니다.
<tr>
<td style='font-family:Tahoma; font-size:8pt' align=right>예비 필드 1</td>
<td> <input type=text name=zx value="<?=$data[x]?>" <?=size(20)?> maxlength=100 class=input></td>
</tr>
<tr>
<td style='font-family:Tahoma; font-size:8pt' align=right>예비 필드 2</td>
<td> <input type=text name=zy value="<?=$data[y]?>" <?=size(20)?> maxlength=100 class=input></td>
</tr>
위에서 처럼 name=zx , name=zy 로 받으셔야 제대로 작동을 합니다, 이것은 제로님이 write_ok.php 문 상에서 $x=$zx , $y=$zy 로 받으셨기 때문에 어쩔수 가 없더군요.
두번째 고칠 파일은 제로보드 폴더의 write.php 문입니다.
if($mode=="modify") {
// 비밀글이고 패스워드가 틀리고 관리자가 아니면 리턴
if($data[is_secret]&&!$is_admin&&$data[ismember]!=$member[no]&&$HTTP_COOKIE_VARS[zb_s_check]!=$setup[no]."_".$no) error("정상적인 방법으로 수정하세요");
$name=stripslashes($data[name]); // 이름
$email=stripslashes($data[email]); // 메일
$homepage=stripslashes($data[homepage]); // 홈페이지
$subject=$data[subject]=stripslashes($data[subject]); // 제목
$subject=str_replace("\"",""",$subject);
$homepage=str_replace("\"",""",$homepage);
$name=str_replace("\"",""",$name);
$sitelink1=str_replace("\"",""",$sitelink1);
$sitelink2=str_replace("\"",""",$sitelink2);
// 추가 필드 사용을 위한 추가 by 유메
$x=stripslashes($data[x]);
$y=stripslashes($data[y]);
위부분을 찾으셔서 위의 두줄을 추가해주세요.. 이것을 해주셔야 저장된 게시물을 수정할때 x,y 의 내용이 보이게 됩니다.
세번째 수정할 파일은 write_ok.php 문입니다. 조금 바꾸어야 할 부분이 많은 파일이니 주의하시기 바랍니다.
// 각종 변수의 addslashes 시킴;;
$homepage=addslashes(del_html($homepage));
// 예비 추가 필드 사용을 위한 추가 by 유메
$x=addslashes(del_html($x));
$y=addslashes(del_html($y));
/***************************************************************************
* 수정글일때
**************************************************************************/
minus_division($s_data[division]);
// 예비 필드 수정모드 사용을 위한 추가 by 유메
@mysql_l_query("update $t_board"."_$id set headnum='$headnum',prev_no='$prev_no',next_no='$next_no',child='$child',depth='$depth',arrangenum='$arrangenum',father='$father',name='$name',email='$email',homepage='$homepage',subject='$subject',memo='$memo',sitelink1='$sitelink1',sitelink2='$sitelink2',use_html='$use_html',reply_mail='$reply_mail',is_secret='$is_secret',x='$x',y='$y',category='$category' $del_que1 $del_que2 where no='$no'") or error(mysql_error());
plus_division($division);
// 일반글 -> 공지
@mysql_query("update $t_board"."_$id set division='$division',headnum='$headnum',prev_no='$prev_no',next_no='$next_no',child='$child',depth='$depth',arrangenum='$arrangenum',father='$father',name='$name',email='$email',homepage='$homepage',subject='$subject',memo='$memo',sitelink1='$sitelink1',sitelink2='$sitelink2',use_html='$use_html',reply_mail='$reply_mail',is_secret='$is_secret',x='$x',y='$y',category='$category' $del_que1 $del_que2 where no='$no'") or error(mysql_error());
// 일반->일반, 공지->공지 일때
} else {
@mysql_query("update $t_board"."_$id set name='$name',subject='$subject',email='$email',homepage='$homepage',memo='$memo',sitelink1='$sitelink1',sitelink2='$sitelink2',use_html='$use_html',reply_mail='$reply_mail',is_secret='$is_secret',x='$x',y='$y',category='$category' $del_que1 $del_que2 where no='$no'") or error(mysql_error());
/***************************************************************************
* 답변글일때
**************************************************************************/
// 답글 데이타 입력;;
mysql_query("insert into $t_board"."_$id (division,headnum,arrangenum,depth,prev_no,next_no,father,child,ismember,memo,ip,password,name,homepage,email,subject,use_html,reply_mail,category,is_secret,sitelink1,sitelink2,file_name1,file_name2,s_file_name1,s_file_name2,x,y,reg_date,islevel) values ('$division','$headnum','$arrangenum','$depth','$prev_no','$next_no','$father','$child','$member[no]','$memo','$ip','$password','$name','$homepage','$email','$subject','$use_html','$reply_mail','$category','$is_secret','$sitelink1','$sitelink2','$file_name1','$file_name2','$s_file_name1','$s_file_name2','$x','$y','$reg_date','$member[is_admin]')") or error(mysql_error());
/***************************************************************************
* 신규 글쓰기일때
**************************************************************************/
mysql_query("insert into $t_board"."_$id (division,headnum,arrangenum,depth,prev_no,next_no,father,child,ismember,memo,ip,password,name,homepage,email,subject,use_html,reply_mail,category,is_secret,sitelink1,sitelink2,file_name1,file_name2,s_file_name1,s_file_name2,x,y,reg_date,islevel) values ('$division','$headnum','$arrangenum','$depth','$prev_no','$next_no','$father','$child','$member[no]','$memo','$ip','$password','$name','$homepage','$email','$subject','$use_html','$reply_mail','$category','$is_secret','$sitelink1','$sitelink2','$file_name1','$file_name2','$s_file_name1','$s_file_name2','$x','$y','$reg_date','$member[is_admin]')") or error(mysql_error());
위를 잘 참조하시고 필드 넉넉하게 쓰세요!!!
장미 한송이러브레터(www.roselove.co.kr) 라는 사이트에서 보내온 메일내용중에 좋은 시가 있어서 올려봅니다..
내가 사랑하는 이 사람.... (김은진님께서 작성하신 글입니다.)
매일 싸우다시피 한 정말 얄미운사람
화가나면 정말 무서운 사람
돌아서면 헤벌레 웃으면서 잘해주는사람
일상이 바빠 눈물이 메말랐다던 사람
그러면서도 몰래 우는 맘약한사람
곁에 믿을만한사람없다던 사람
괴롭히는것 좋아하는 사악한사람
항상 믿음을 주는 든든한사람이런사람이 저에 곁에 있습니다
이런사람을 전 사랑하고있습니다
아무것도 해줄수 없어 아쉬움으로 남는 이 사람
이사람때문에 많은눈물을 쏟았습니다
이사람때문에 많이 웃었습니다
이사람때문에 마음이 든든했습니다
이사람이 저의 곁에 있어 너무 행복하고 감사합니다진정한 사람을 알게해준 이 사람에게 감사합니다
행복을 나누어 준 이 사람에게 너무 감사합니다.