※ 파일 만들기
먼저 파일을 하나 만듭시다.
<?
include "lib.php";
if(!$connect) $connect=dbConn();
///////////////////////////////// 필드추가를 위한 부분
$query="ALTER TABLE zetyx_member_table ADD point int(20) default '0'";
mysql_query($query);
///////////////////////////////// 필드추가를 위한 부분 끝-_-//
$result = mysql_query("select * from zetyx_member_table");
while($data = mysql_fetch_array($result)) {
$point = $data[point1]*10+$data[point2]; // 포인트 필드가 더 있다면 계속 추가바람.
@mysql_query("update zetyx_member_table set point='$point' where no='$data[no]'"); // 필드 통합하기!
}
?>
위 소스를 복사해서 아무 이름으로나 저장해서 제로보드가 깔린폴더 안에 넣어주신 다음
http://홈주소/제로보드폴더/파일이름.php 로 실행시키면
" 아무것도 안뜹니다 "
..-_-;; 그게 정상입니다-_-;
그리고 수정해야할 파일들은..
/admin/admin_modify_member.php (회원들의 포인트를 수정하고 싶다면...)
/member_modify.php
/view_info2.php
입니다.
view_info2.php 부터 수정해보죠.
<?=$data[point1]?> 과 <?=$data[point2]?> 를 찾으셔서, 다 지우신 후, 그자리에 <?=$data[point]?> 를 써주시면 됩니다.
member_modify.php 도 마찬가지인데요, 다른점은 <?=$data[point]?> 가 아니라 <?=$member[point]?>이라는 거죠;;
admin/admin_modify_member.php 수정은.. 꽤 복잡한데 잘 봐두세요..
다른 포인트 수정방법과 같습니다. 단지 [point1] 이나 [point2] 가 아니라 [point]라는거죠-_-;;
아래와 같은 소스를 찾습니다.
<tr height=22 align=center>
<td colspan=2 bgcolor=#a0a0a0 style=font-family:Tahoma;font-size:8pt;font-weight:bold; align=center>관리자 고유권한</td>
</tr>
그 밑에 다음과 같은 소스를 붙여넣습니다.
<?
// 포인트 수정 소스 시작
if($member[no]==$no) $locking = "disabled";
if($member[is_admin]==1)
{
$select[$member_data[is_admin]]="selected";
?>
<tr height=22 align=center>
<td bgcolor=#a0a0a0 align=right style=font-family:Tahoma;font-size:9pt;font-weight:bold;>포인트 조절 </td>
<td align=left bgcolor=#e0e0e0> <input type=text name=point size=20 maxlength=20 value="<?=$member_data[point]?>" class=input style=border-color:#b0b0b0></td>
</tr>
<?
}
// 포인트 수정 소스 끝
?>
그 다음 또 수정해야할 파일이 있는데요, 바로 admin/admin_exec_member.php 파일입니다.
파일 중간쯤 보시면
(앞부분 생략...)
$que.=",comment='$comment'";
(뒷부분 생략...)
이런 부분이 있죠?
이 아래에다가 붙여넣어주세요.
$que.=",point='$point'";
※ 포인트 올리고 내리기
이제 글쓰면 포인트 올리고~ 어쳐고 해야겠죠?
write_ok.php
comment_ok.php
delete_ok.php
del_comment_ok.php
이상 4가지를 수정해야하는데요, 거의 비슷해요^-^
write_ok.php
write_ok.php 는 글을 쓰면 포인트를 주는 부분이 포함되어있습니다.
즉 포인트를 수정하실때는 글1개의 포인트를 쓰셔야 합니다.
(ex. 10point)
맨 아래쪽에 보면
// 회원일 경우 해당 해원의 점수 주기
if($mode=="write"||$mode=="reply") @mysql_query("update $member_table set point1=point1+1 where no='$member[no]'",$connect) or error(mysql_error());
이런 부분이 있는데 이렇게 바꿔주세요.
// 회원일 경우 해당 해원의 점수 주기
if($mode=="write"||$mode=="reply") @mysql_query("update $member_table set point=point+주고싶은포인트 where no='$member[no]'",$connect) or error(mysql_error());
자, 굵게 표시된 부분이 바뀐 부분이구요, 빨간부분은 꼭 수정하셔야 합니다!! (원하는대로~ 기본값은 10 입니다;)
delete_ok.php
delete_ok.php 는 글을 삭제하면 포인트를 빼는 부분이 포함되어있스빈다.
즉 포인트를 수정하실때는 글1개의 포인트를 쓰셔야 합니다.
(ex. 10point)
이것도 비슷합니다^-^ 역시 아랫부분에..
// 회원일 경우 해당 해원의 점수 빼기
if($member[no]==$s_data[ismember]) @mysql_query("update $member_table set point1=point1-1 where no='$member[no]'",$connect) or error(mysql_error());
이런 부분이 있는데요,
역시 바꿔줍시다.
// 회원일 경우 해당 해원의 점수 빼기
if($member[no]==$s_data[ismember]) @mysql_query("update $member_table set point=point-빼고싶은포인트 where no='$member[no]'",$connect) or error(mysql_error());
역시나 굵은곳은 바뀐곳, 빨간곳은 꼭수정하셔야 할 부분인데요, 빼고싶은 포인트는 웬만하면 아까 write_ok.php 수정하면서 정해준거랑 같게 해주면 좋겠죠? ^^
comment_ok.php
comment_ok.php 는 코멘트을 쓰면 포인트를 주는 부분이 포함되어있습니다.
즉 포인트를 수정하실때는 코멘트1개의 포인트를 쓰셔야 합니다.
(ex. 1point)
이제 따로 설명 안해요-_-// 무조건 끝 부분!
// 회원일 경우 해당 해원의 점수 주기
@mysql_query("update $member_table set point2=point2+1 where no='$member[no]'",$connect) or error(mysql_error());
이부분 찾습니다.
아래처럼 바꿉시다.
// 회원일 경우 해당 해원의 점수 주기
@mysql_query("update $member_table set point=point+주고싶은포인트 where no='$member[no]'",$connect) or error(mysql_error());
설명 안합니다-_- 위에서 설명한거랑 똑같으니까요-_-;;;;
del_comment_ok.php
del_comment_ok.php 는 코멘트을 지우면 포인트를 빼는 부분이 포함되어있습니다.
즉 포인트를 수정하실때는 코멘트1개의 포인트를 쓰셔야 합니다.
(ex. 1point)
여긴 쪼금 다르네요^^;
아래와 같은 부분을 찾습니다.
// 회원일 경우 해당 회원의 점수 차감
if($member[no]==$s_data[ismember]) @mysql_query("update $member_table set point2=point2-1 where no='$member[no]'",$connect) or error("회원의 점수를 차감하는 도중 오류가 발생했습니다.");
elseif($member[no]!=$s_data[ismember]) @mysql_query("update $member_table set point2=point2-1 where no='$s_data[ismember]'",$connect) or error("회원의 점수를 차감하는 도중 오류가 발생했습니다.");
// 관리자일 경우 해당 회원의 점수 차감
elseif($member[is_admin]>3) @mysql_query("update $member_table set point2=point2-1 where no='$s_data[ismember]'",$connect) or error("회원의 점수를 차감하는 도중 오류가 발생했습니다.");
아래와 같이 바꿉니다.
// 회원일 경우 해당 회원의 점수 차감
if($member[no]==$s_data[ismember]) @mysql_query("update $member_table set point=point-빼고싶은포인트 where no='$member[no]'",$connect) or error("회원의 점수를 차감하는 도중 오류가 발생했습니다.");
elseif($member[no]!=$s_data[ismember]) @mysql_query("update $member_table set point=point-빼고싶은포인트 where no='$s_data[ismember]'",$connect) or error("회원의 점수를 차감하는 도중 오류가 발생했습니다.");
// 관리자일 경우 해당 회원의 점수 차감
elseif($member[is_admin]>3) @mysql_query("update $member_table set point=point-빼고싶은포인트 where no='$s_data[ismember]'",$connect) or error("회원의 점수를 차감하는 도중 오류가 발생했습니다.");
웬만하면 3개 다 같게 해주시구요.. comment_ok.php에서 설정해준 값과 같게 해주면 좋겠죠? ^^
이제 끝~ *^-^*
이 다음은 포인트 통합하고 글쓴횟수 코멘트 숫자 제대로 나타내기
기존에 에지 님이 올려주신 걸 해보니 통합은 잘되지만 글쓴횟수와 코멘트수가 제대로 나와도 포인트가 올라가지 않더군요. 그래서 나름대로 수정해봤습니다. 위의 주소를 참고해주세요 -------------아래 소스를 php로 만들어 한번만 실행해주세요 아무것도 안나와야 정상입니다----------------------- <? include "lib.php"; if(!$connect) $connect=dbConn(); ///////////////////////////////// 필드추가를 위한 부분 $query="ALTER TABLE zetyx_member_table ADD point int(20) default '0'"; mysql_query($query); ///////////////////////////////// 필드추가를 위한 부분 끝-_-// $result = mysql_query("select * from zetyx_member_table"); while($data = mysql_fetch_array($result)) { $point = $data[point1]+$data[point2]; // 포인트 필드가 더 있다면 계속 추가바람. @mysql_query("update zetyx_member_table set point='$point' where no='$data[no]'"); // 필드 통합하기! } ?> ------------------------------ 빨간색 부분이 수정된 부분입니다 --------------------------------------------------- /admin/admin_modify_member.php/member_modify.php /view_info2.php 이 3개의 파일은 위의 주소에 나와 있으니 그걸 보시고 따라하세요 ------------------------------------------------------------------------------------------------------------------- write_ok.phpcomment_ok.php delete_ok.php del_comment_ok.php 이 4개의 파일을 수정하겠습니다.
write_ok.php // 회원일 경우 해당 해원의 점수 주기 if($mode=="write"||$mode=="reply") @mysql_query("update $member_table set point1=point1+1 where no='$member[no]'",$connect) or error(mysql_error()); 위의 소스 아래 if($mode=="write"||$mode=="reply") @mysql_query("update $member_table set point=point+주고싶은포인트 where no='$member[no]'",$connect) or error(mysql_error());를 대체하는게 아니라 추가 시켜줍니다.
delete_ok.php // 회원일 경우 해당 해원의 점수 빼기 if($member[no]==$s_data[ismember]) @mysql_query("update $member_table set point1=point1-1 where no='$member[no]'",$connect) or error(mysql_error()); 위의 소스 아래 if($member[no]==$s_data[ismember]) @mysql_query("update $member_table set point=point-빼고싶은포인트 where no='$member[no]'",$connect) or error(mysql_error());이걸 추가 시켜줍니다.
comment_ok.php // 회원일 경우 해당 해원의 점수 주기 @mysql_query("update $member_table set point2=point2+1 where no='$member[no]'",$connect) or error(mysql_error()); 위의 소스 아래 @mysql_query("update $member_table set point=point+주고싶은포인트 where no='$member[no]'",$connect) or error(mysql_error());이걸 추가 시켜줍니다.
del_comment_ok.php // 회원일 경우 해당 회원의 점수 차감 if($member[no]==$s_data[ismember]) @mysql_query("update $member_table set point2=point2-1 where no='$member[no]'",$connect) or error("회원의 점수를 차감하는 도중 오류가 발생했습니다."); elseif($member[no]!=$s_data[ismember]) @mysql_query("update $member_table set point2=point2-1 where no='$s_data[ismember]'",$connect) or error("회원의 점수를 차감하는 도중 오류가 발생했습니다."); // 관리자일 경우 해당 회원의 점수 차감 elseif($member[is_admin]>3) @mysql_query("update $member_table set point2=point2-1 where no='$s_data[ismember]'",$connect) or error("회원의 점수를 차감하는 도중 오류가 발생했습니다."); 위의 소스 아래 // 회원일 경우 해당 회원의 점수 차감if($member[no]==$s_data[ismember]) @mysql_query("update $member_table set point=point-빼고싶은포인트 where no='$member[no]'",$connect) or error("회원의 점수를 차감하는 도중 오류가 발생했습니다."); elseif($member[no]!=$s_data[ismember]) @mysql_query("update $member_table set point=point-빼고싶은포인트 where no='$s_data[ismember]'",$connect) or error("회원의 점수를 차감하는 도중 오류가 발생했습니다."); // 관리자일 경우 해당 회원의 점수 차감 elseif($member[is_admin]>3) @mysql_query("update $member_table set point=point-빼고싶은포인트 where no='$s_data[ismember]'",$connect) or error("회원의 점수를 차감하는 도중 오류가 발생했습니다."); 이걸 추가 시켜줍니다.
보시면 아시겠지만 대처 하는게 아니라 추가 시켜줍니다. 그러면 |
덧글들..
SunixNetwork
빨리 올려줘요!!!
그리고 설명을 좀 자세히 좀... 2003-04-08
17:34:27
Pe-i [Cassiopeia]
아..
좋은방법입니다.
예상 못한방법.
전 통합하는 방법이, 소스를 복잡하게 열어 point1과point2 를 합치는줄 알았습니다.
그런데 포인트1+포인트2 를 그냥 point로 두고...
굿!
추천~ 2003-04-08
18:10:04
김민필
했는데요..이상하게-_-
다운로드할때 포인트쓰게하기랑 포인트 통합하기 다했는데요-_-
포인트 조절에 게속 - 점수가 나오네요..
지금 운영자 포인트 조절 점수가 -30 이네요-_-
보니까 저거로 다운로드할떄 포인트 쓰기..적용하는거같던데
계속 포인트가 부족합니다 나와요..
왜이러죠... 2003-04-09
22:33:26
김기표
<?
///////////////////////////////// 필드추가를 위한 부분
include "lib.php";
if(!$connect) $connect=dbConn();
$query="ALTER TABLE zetyx_member_table ADD point int(20)";
mysql_query($query);
///////////////////////////////// 필드추가를 위한 부분 끝-_-//
$point = $member[point1]+$member[point2]; // 포인트 필드가 더 있다면 계속 추가바람.
@mysql_query("update zetyx_member_table set point='$point'",$connect) or error(mysql_error()); // 필드 통합하기!
?>
처음에 만든 이 파일은 어디에다가 업로드 합니까.? 실행시킨다는 말이 무슨 말씀이신지요ㅕ?
제가 초보라 잘 모르는데 답변 부탁합니다..
그리고 그 파일 이름 ***.php로 저장하는거 맞져? 2003-04-12
00:17:02
김기표
위에 꺼 어떻하는지 몰라서 걍 안만들고 다 적용했는데요..포인트가 부족하데여..ㅡㅡ;
위에 첫 파일 만들기 제발 갈쳐주세요.. 2003-04-12
01:18:48
에지
첫파일 만들기는.. 파일이름은 맞습니다~ 예 맞구요~ (-_-;;)
어디에다가 업로드하냐면.. 제로보드가 설치된 폴더에요..
그리고 실행은
http://홈주소/제로보드폴더이름/만든파일이름.php
가 되겠네요^^ 2003-04-12
16:04:39
Sebastian™
에지님 좋은팁 감사합니다...일단 소스편집은 잘된듯싶고....
포인트통합하고 포인트선물기능까지 팁 잘적용된거 같습니다...
그런데 한가지...로그인시...포인트가 적용이 안됩니다...
회원정보를 클릭하면 포인트가 잘 적용되어서 보이는데...
로그인스킨에는 포인트가 전혀 적용되지 않습니다.. 스킨에는 어디를 편집해 주어야 통합포인트체계가 될런지...
답변부탁드립니다...에지님 ..초보질문이었습니다... 2003-04-14
01:45:13
김기표
저도 세바스챤님의 질문에 대한 답변을 듣고 싶어요~~지두 아무리 수정해두 안되더라구여..갈쳐주십시요,.스킨에는 걍 [point]라고 써있던데요...어딜 고치는거져? 2003-04-14
12:55:07
조한웅
김기표//
outlogin.php 에서 point 라고 검색을 해보세요
그 중에 [point] = point1*2 + point2 이렇게 된게 있을꺼에요
거기도 통합포인트로 수정해주세요. 2003-04-14
14:43:59
조한웅
정확하게 아래와 같이 고쳐주시면 되겠군요
$_outlogin_data = str_replace("[point]",number_format($member[point]),$_outlogin_data);
그럼 성공하길 빌겠어요~ ^^ 2003-04-14
14:50:04
김기표
<?=($member[point])?> 점 걍 이거에요.. 2003-04-15
23:29:09
김기표
저도 지금 이거 설치했다가 헤메고 있네요...
회원들 점수가 회원가입하면 0점 으로 나와야하는데 걍 점 으로 나와서 일일이 전부 수정해주고 있답니다..ㅡㅡ;
방법이 있다는데 너무 어려워서 어쩔줄 모르겠네여,,님두 잘 아신다면 하시구요..아님 그만두시는게....전 며칠째 고생하고 있습니다..ㅡㅡ; 2003-04-15
23:30:54
김기표
팁이 나쁘다는건 절대아닙니다..제가 바보라는거져...^^ 2003-04-15
23:31:16
윤인식
...
제가 저한테 포인트 3500으로 수정할려고 하니깐
회원정보 수정시에 에러가 발생하였습니다 You have an error in your SQL syntax near 'point='3500'' at line 1
이렇게 나옵니다..어떻게 해야하나요? 2003-04-16
11:44:15
▷◁Wesee▷◁
어 별건 아니지만... write_ok.php 에서 글쓸때 점수는 10이 아니라 1입니다...
point1=point1+1 이라는 거죠...
point1을 10으로 계산한다는거지... 올릴떄는 1이 올라여 ㅡㅡ...
아참... 통합할때는 10으로 해야되겠네... 저는 2로 쓸꺼에요 ^^;; 2003-05-09
14:11:59
에지
김기표//
그럴때는 아래 소스로 파일을 하나 만드시고 계정에 제로보드 폴더 안에 올리신다음 실행시켜주시면 해결됩니다.
<?
include "lib.php";
$connect = dbconn();
// 포인트 기본값을 0으로 지정해 주는 부분 (신규회원들을 위한 부분)
mysql_query("alter table zetyx_member_table change point point int (11) default '0'");
// 이미 가입한 회원들을 위해서 포인트를 0으로 만드는 부분 (포인트가 없는 회원들만)
$result = mysql_query("select * from zetyx_member_table");
while($data = mysql_fetch_array($result)) {
if($data[point]==0 || !$data[point]) mysql_query("update zetyx_member_table set point='0'");
}
?> 2003-09-26
18:57:47
샤위엔즈™
이 팁 적용하면 전에쓰던 point1 등등의 필드는 db에서 지워도 되는건가요 ? 2004-01-08
16:13:37
エジ
샤위엔즈™// 혹시 모르니까 놔두시는게 좋지만, 더이상 필요없으시다면 지우셔도 무방합니다. 2004-03-02
17:40:00
흰둥이
admin_modify_member.php 이파일에서 [관리자 고유권한....] <- 이부분 바로위에
포인트가 몇점인지 보이는게 있는데요.
그부분도 수정을 해줘야되요~ 위에 빠진거 같아 적습니다.
<?=($member_data[point1]*10+$member_data[point2])?>
이부분을 <?=$member_data[point]?> 이렇게 해주시면 되요~ 2004-07-19
06:40:52
정물왕
[추가] 'admin_view_member.php' 의 208행을 수정해 주세요.
<td style=font-family:Tahoma;font-size:8pt;>".($data[point1]*10+$data[point2])." <font style=font-size:7pt;>(".$data[point1]."/".$data[point2].")</font></td>
을 아래처럼 수정하시면, 회원관리에서 점수 부분이 통합 포인트로 바뀌어 나타납니다.
<td style=font-family:Tahoma;font-size:8pt;>".($data[point])."</td> 2004-11-02
00:54:33
비토
작성글수랑 코멘트 숫자만 올라갑니다..;; 당황스러운데.. 이거 어떻게 하나요?
입력은 그대로 한거 같은데.. 점수가 안올라갑니다.. 2005-01-05
17:35:09
star-artanis
저도 안올라가요..... 점수가 아예... 저기 전부다 했는데.. 2005-02-11
23:06:33
피치
누가 이 소스 다시 정리해주심 안될까요? ㅠ0ㅠ 머리가 나빠서.. 2005-03-21
16:14:36
시원
멋지십니다!!!
훌륭합니다!!!
감동입니다!!!
잘되네요 ^^*
エジ
대략 point도 올리고 point1/2도 올린다 이거군요-_-; (대략 본인이 에지임-_-;)
지금 제 홈도 약간 바뀌어서 그렇게 하고있죠..; 2004-02-01
20:53:07
다끄니쓰
먼가 이상하네 ㅡ,ㅡ
del_comment_ok.php
// 회원일 경우 해당 회원의 점수 차감 <-------- 이거 없는데;;
걍 회원점수 주기던데요;;
// 회원일 경우 해당 해원의 점수 주기
if($member[no]==$s_data[ismember]) @mysql_query("update $member_table set point2=point2-1 where no='$member[no]'",$connect) or error(mysql_error());
@mysql_close($connect);
이거뿐이 없던데 ㅡ,.ㅡ;; 참 이럴때 무쟈게 난감하군요;; 2004-05-16
23:09:48
다끄니쓰
제로보드가 이상한건가 ㅡ,.ㅡ 어험;; 참 ㅡ,.ㅡ 거시기하네;; 휴;; 2004-05-16
23:13:49
정다빈
저두 그렇게 나오죠 맨위에 //표시는 상관없으니 맘대로 수정해도 될듯(구분을위한것) 2004-08-24
15:26:49
이규석
한가지 발견!
아웃로그인에도 적용해야 합니다 -.-
outlogin.php를 수정
str_replace("[point]",number_format($member[point1]*10+$member[point2]),$_outlogin_data);
이 부분을
str_replace("[point]",number_format($member[point]),$_outlogin_data);
이렇게~ 2004-09-16
12:12:23
이규석
마지막으로 포인트가 거의 없을 때 글/코멘트 삭제시 포인트가 마이너스가 되는 일이 없도록 아래처럼 해주면 좋겠죠.
글일 경우 포인트가 10 미만이면 그냥 0으로 만들기..
// 회원일 경우 해당 해원의 점수 빼기
if($member[no]==$s_data[ismember] && $member[point]>9) @mysql_query("update $member_table set point=point-10, point1=point1-1 where no='$member[no]'",$connect) or error(mysql_error());
elseif($member[no]==$s_data[ismember] && $member[point]<10) @mysql_query("update $member_table set point=0, point1=point1-1 where no='$member[no]'",$connect) or error(mysql_error());
elseif($member[is_admin]==1) @mysql_query("update $member_table set point=point-10, point1=point1-1 where no='$member[no]'",$connect) or error(mysql_error());
코멘트일 경우 포인트가 0 이하이면 그냥 패스...
// 회원일 경우 해당 해원의 점수 빼기
if($member[no]==$s_data[ismember] && $member[point]>0) @mysql_query("update $member_table set point=point-1, point2=point2-1 where no='$member[no]'",$connect) or error(mysql_error());
elseif($member[no]==$s_data[ismember] && $member[point]<=0) @mysql_query("update $member_table set point2=point2-1 where no='$member[no]'",$connect) or error(mysql_error());
elseif($member[is_admin]==1) @mysql_query("update $member_table set point=point-1, point2=point2-1 where no='$s_data[ismember]'",$connect) or error(mysql_error()); 2004-09-16
12:43:45
나라
db를 두번 쿼리하는것은 비효율적입니다.. 에지님처럼
// 회원일 경우 해당 해원의 점수 주기
if($mode=="write"||$mode=="reply") @mysql_query("update $member_table set point1=point1+1,point=point+주고싶은포인트 where no='$member[no]'",$connect) or error(mysql_error());
이렇게 해야 되죠
출처 : http://www.nzeo.com/bbs/zboard.php?id=cgi_tip&page=3&sn1=&divpage=1&sn=off&ss=on&sc=off&keyword=포인트&select_arrange=headnum&desc=asc&no=5426
http://www.nzeo.com/bbs/zboard.php?id=cgi_tip&page=4&page_num=15&select_arrange=headnum&desc=&sn=off&ss=on&sc=off&keyword=포인트&no=3865&category=