2026, 새로운 도약을 시작합니다.

초대장 기능~~ 두 번째 수정 되었습니다.

us7_kr_20110520_224418.jpg
기능은 가입 자체를 초대한(초대코드를 가지고 있는) 사람만 가입 시키는 코드가 되겠습니다.
기준은 그누보드 기본팩 4.34.03 utf8 기준입니다.(euc-kr 도 아마 조금만 수정하면 될겁니다.)
다른 팩들의 경우 ui이가 다르거나 깨져 보일수도....

invitation_code_all.zip 의 경우는 소스 편집이 필요치 않습니다.!!!!!!
db의 경우에는 처음에 계정/adm/invitation_code_install.php를 실행하시면 됩니다.
(다른 기능을 추가하신경우 오류가 날수도 있습니다!!)

기본 기능으로는 초대 코드 생성
선택 코드 삭제
테이블 초기화
사용한 코드만 삭제
선택한 코드 메일로 보내기
(제가 해본 결과 99%의 확률로 스팸메일함에 들어가는 듯하네요)-invitation_code_send_update.php파일 24번 줄에 mailer(~) 부분을 수정하시면 될 것 같네요.(Daum에서는 도메인 아이피하고 진짜 보낸 아이피가 틀리면 스팸으로 판단하네요)

먼저 첨부파일을 다운받아 서버
계정/adm/ <- 으로 올려주세요!

db의 경우에는 처음에 계정/adm/invitation_code_install.php를 실행하시면 됩니다.

일단 관리자 메뉴에 추가하시는 게 먼저죠 ㅋ
계정/adm/admin.menu200.php 파일을 열어 수정합니다.
저는 회원 관리와 포인트 관리 사이에 넣었습니다.

array("200110", "초대장 관리", "$g4[admin_path]/invitation_code.php"),

여기다 추가해도 될지 모르지만
계정/adm/config_form.php파일을 열어서
초대장 기능을 사용할지 말지를 정해는 코드를 넣습니다.

~~~~
<td>복사, 이동시 로그</td>
~~~~
</tr> 밑에 넣었습니다.

<tr class='ht'>
<td>초대장으로만 가입시키기</td>
<td colspan=3><input type='checkbox' name='g4_invitation_code_config' value='1' <?=$config[g4_invitation_code_config]?'checked':'';?>> 사용
<?=help("초대장으로만 가입되게하기")?></td>
</tr>

추가하셨으면
계정/adm/config_form_update.php
~~~
cf_10 = '$_POST[cf_10]'; //수정 전
~~~
cf_10 = '$_POST[cf_10]', //수정 후
g4_invitation_code_config= '$_POST[g4_invitation_code_config]' ";

다음은
계정/skin/member/basic/register.skin.php를 수정합니다.
전 <? if ($config[cf_use_jumin]) { // 주민등록번호를 사용한다면 ?> 이놈 윗줄에 추가합니다.

<? if ($config[g4_invitation_code_config]) { // 초대장 ?>
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td height=25></td>
</tr>
<tr>
<td bgcolor="#cccccc">
<table cellspacing=1 cellpadding=0 width=100% border=0>
<tr bgcolor="#ffffff">
<td width="140" height=30>&nbsp;&nbsp;&nbsp;<b>초대장 코드</b></td>
<td width="">&nbsp;&nbsp;&nbsp;<input name=g4_invitation_code itemname="초대장 코드" required minlength="2" nospace nohangul class=ed></td>
</tr>
</table></td>
</tr>
</table>
<? } ?>

그다음은
계정/bbs/register_form.php 이놈입니다.

두 번째줄 인클루드문 바로 밑에 추가 합니다.

//초대장 환경설정 부르기
include_once($g4['admin_path']."/invitation_code_config.php");


~~//주민등록번호~~ 윗줄에 추가합니다

if ($config[g4_invitation_code_config]) {
$row = sql_fetch("SELECT * from ".$g4['invitation']." where code = '$_POST[g4_invitation_code]'");
if($row[code]){
if($row[validcode]) alert("이미 사용한 초대 코드입니다.");
if(date("Y-m-d")>$row[validdate])alert("이미 사용 기간이 지난 초대 코드입니다.");
}else{
alert("초대코드가 틀렸습니다! 확인해주세요!");
}
}

다음
계정/skin/member/basic/register_form.skin.php 파일입니다.

<input type=hidden name=mb_email_enabled value="" id="mb_email_enabled">
~여기에 넣어주세요~
<!-- <input type=hidden name=token value="<?=$token?>"> -->

<input type=hidden name=g4_invitation_code value='<?=$g4_invitation_code?>'>


계정/bbs/register_form_update.php
이것도 인클루드문 밑에 추가합니다.
요건 3번째줄이겠죠 ㅋㅋ

//초대장 환경설정 부르기
include_once($g4['admin_path']."/invitation_code_config.php");


if ($mb[mb_id])
alert("이미 가입한 아이디입니다.");
~~~~~여기다 넣어 주세요~~
$sql = " insert into $g4[member_table]
set mb_id = '$mb_id',
mb_password = '".sql_password($mb_password)."',

if ($config[g4_invitation_code_config]&&!$g4_invitation_code) alert('초대장 코드가 넘어오지 않았습니다.');
if ($config[g4_invitation_code_config]) {
$row = sql_fetch("SELECT * from ".$g4['invitation']." where code = '$_POST[g4_invitation_code]' ");
if($row[code]){
if($row[validcode]) alert("이미 사용한 초대 코드입니다.");
if(date("Y-m-d")>$row[validdate])alert("이미 사용 기간이 지난 초대 코드입니다.");
}else{
alert("초대코드가 틀렸습니다! 확인해주세요!");
}
}

// 회원가입 포인트 부여 <- 이놈 윗줄에도 추가하세요~~

//초대장 관련
if ($config[g4_invitation_code_config]){
$sql2="SELECT * FROM g4_member WHERE `mb_id` = '$mb_id'";
$row2=sql_fetch($sql2);
$timeset=date("Y-m-d H:i:s");
$sql = "UPDATE ".$g4['invitation']." SET joindate='$timeset', validcode = '1', mb_no='$row2[mb_no]' WHERE code = '$_POST[g4_invitation_code]'";
sql_query($sql);
}

이러면 일단 끝났을 겁니다.

따라할 수 있게 설명했는지는 모르겠네요.
제가 봐도 어지럽기만 하네요. ㅋㅋ

소스가 좀 많이 난잡합니다.
바꿔서 쓰시고 제게도 알려 주시면 감사합니다.

ps. 글쓰기 버튼을 누르기가 두렵군요


수정된 부분

계정/bbs/register_form_update.php
부분입니다.
회원 정보 수정시 오루가 다는 현상때문에 수정 되었습니다

첨부파일

invitation_code.zip (7 KB) 147회 2011-05-23 07:25
invitation_code_all.zip (28.4 KB) 139회 2011-05-23 07:25
|

댓글 41개

G블로그와 연동한다면 티스토리와 같은 기능이네요^^
대단합니다. 추천해요!!!
드디어 배포됬군요^^
네 ㅋㅋ 감사합니다.
일단 자러 가야 겠네요.
피곤해요 ㅠㅠ
감사합니다 ㅎㅎ
DB초기화 하면 초대장으로 가입한 회원 모두 삭제되나요?
그게 아니 구요
초대장 코드 쪽만 초기화 됩니다.
대단합니다
문제가있네요 정보수정 후 alert 창이 뜨지 않습니다 그리고 가입후 완료버튼 누르면 빈페이지이구요

물론 가입은 됩니다. 하지만 관리자 초대장 화면에서 누가 가입했는지 알수 없습니다
register_update.skin.php 파일 문제인것 같네요 넣은 코드를 모두 제거하면 잘 됩니다.

하지만 아직 관리자화면에서는 누가 사용했는지 알수없네요
수정 되었습니다.
계정/skin/member/basic/register_update.skin.php
이부분입니다
register_update.skin.php 에

<?
if (!defined("_GNUBOARD_")) exit; // 개별 페이지 접근 불가
//초대장 환경설정 부르기
include_once($g4['admin_path']."/invitation_code_config.php");


if ($mb[mb_id])
alert("이미 가입한 아이디입니다."); <- 밑에 추가합니다.

if ($config[g4_invitation_code_config]&&!$g4_invitation_code) alert('초대장 코드가 넘어오지 않았습니다.');
if ($config[g4_invitation_code_config]) {
$row = sql_fetch("SELECT * from ".$g4['invitation']." where code = '$_POST[g4_invitation_code]' ");
if($row[code]){
if($row[validcode]) alert("이미 사용한 초대 코드입니다.");
if(date("Y-m-d")>$row[validdate])alert("이미 사용 기간이 지난 초대 코드입니다.");
}else{
alert("초대코드가 틀렸습니다! 확인해주세요!");
}
}

// 회원가입 포인트 부여 <- 이놈 윗줄에도 추가하세요~~

//초대장 관련
if ($config[g4_invitation_code_config]){
$sql2="SELECT * FROM g4_member WHERE `mb_id` = '$mb_id'";
$row2=sql_fetch($sql2);
$timeset=date("Y-m-d H:i:s");
$sql = "UPDATE ".$g4['invitation']." SET joindate='$timeset', validcode = '1', mb_no='$sql2[mb_no]' WHERE code = '$_POST[g4_invitation_code]'";
sql_query($sql);
}

?>

이렇게 넣었는데 아직도 그러네요 .
if ($mb[mb_id])
alert("이미 가입한 아이디입니다.");
여기다 넣어 주세요~~
$sql = " insert into $g4[member_table]
set mb_id = '$mb_id',
mb_password = '".sql_password($mb_password)."',
이런 씩입니다.
감사합니다 적용하였습니다 잘 되고있습니다,

그런데 초대장으로 쓴 ID 가 관리자화면에서는 출력이 되지 않네요
그전에 삭제하신게 문제가 되는 것 같네요
혹시 관리자 화면에 회원번호가 안 나오신다면 99%입니다.

그리고 다시 가입 테스트를 해보세요~~
감사합니다.이제 되는것같네요

스킨 적용 어려우신분들을위해 활용팁에 정리한 파일올려두었습니다

http://sir.co.kr/bbs/board.php?bo_table=g4_tiptech&wr_id=26305&page=0&posting=ok&sca=&sfl=&stx=&sst=&sod=&spt=0

hhgyu 님께 감사의 말씀드립니다.
감사합니다
아 요런기능좋쵸.. 꼭필요한 사이트가 있더라구요.
고생하셨구요 기회가 되면 꼭 사용하겠습니다. 추천꾸~욱.!
와우 ~ 좋은 기능입니다 !! 추천 쾅!!
고생하셨습니다.
추천꽝! 다운 따악!
****** 선택 삭제가 안되네요.
---------------------------
웹 페이지의 메시지
---------------------------
회원가입약관의 내용에 동의하셔야 회원가입 하실 수 있습니다.
---------------------------
확인
---------------------------

이렇게 나오네요..........
감사합니다^^ 추천꽝~~!!!
초대장 관리에서 아이디와 아이디 번호가 안나오는것 에 오타가 있네요^^
제일 하단에 이 부분 삽입하는 부분있는데 여기에서
if ($config[g4_invitation_code_config]){
$sql2="SELECT * FROM g4_member WHERE `mb_id` = '$mb_id'";
$row2=sql_fetch($sql2);
$timeset=date("Y-m-d H:i:s");
$sql = "UPDATE ".$g4['invitation']." SET joindate='$timeset', validcode = '1', mb_no='$sql2[mb_no]' WHERE code = '$_POST[g4_invitation_code]'";
sql_query($sql);
}


$sql = "UPDATE ".$g4['invitation']." SET joindate='$timeset', validcode = '1', mb_no='$sql2[mb_no]' WHERE code = '$_POST[g4_invitation_code]'";
위 부분에
mb_no='$sql2[mb_no]' 이 부분에서 mb_no='$row2[mb_no]' 로 고쳐주시면 됩니다^^
선택 삭제가 안될시에
invitation_code_delete.php 파일 내용중에
//goto_url("./invitation_code.php");
위 부분을
goto_url("./invitation_code.php");
주석 삭제 해주니 되네요........
어이쿠 감사합니다.
테스트를 똑바로 안하니 이렇죠 ㅠㅠ
수정해 놓겠습니다.
왜 저만 안되나요 ㅠㅠ??
힝 왜 저만 안되나요;;
갑자기 로그아웃이 안되지를 않나..가입하려고하면
resister_form_update.php가 오류 걸린다고 뜨고..;;
invitation_code_all.zip 파일 그대로 덮어씌웠는데요~

회원가입약관의 내용에 동의하셔야 회원 가입 하실수 있습니다...라고 떠요..;;;

뭐가 문제일까요...;;
계정/skin/member/basic/register_form.skin.php 파일에

설명에 나와 있는 코드가 추가 안되 있는거 같애요..;

<input type=hidden name=mb_email_enabled value="" id="mb_email_enabled">
~여기에 넣어주세요~
<!-- <input type=hidden name=token value="<?=$token?>"> -->

<input type=hidden name=g4_invitation_code value='<?=$g4_invitation_code?>'>
잘 작동 하는거 같습니다^^

감사합니다~ 필요한 기능이였는데.. 잘쓰겠습니다^^
EUC-KR 은 어떻게 적용해야 할까요? 그냥 변환만해서 씌우면 안되겠죠?
변환해서 덮어싀우시면되요
<기능추가제안> php 페이지를 통해서 일반 회원들이 포인트로 초대장 코드를 바꿔갈 수 있는 기능이 되면 좋겠습니다. 코드 1개당 10점이라면, 초대장 코드 10개를 요청하면 100포인트가 까지면서 초대장 코드 10개가 생성되고 출력되게요. 그러면 그걸 복사해서 가지고 갈 수 있게 하면 좋은 기능이 되지 않을까 싶네요. 이왕 시작하신거 계속 기능 추가 좀 부탁드립니다^^ 고생하셨습니다.
if ($mb[mb_id])
alert("이미 가입한 아이디입니다.");
여기다 넣어 주세요~~
$sql = " insert into $g4[member_table]
set mb_id = '$mb_id',
mb_password = '".sql_password($mb_password)."',

이거 때문에 가입시 에러뜨네요. 위 3줄 없애니까 잘 되네요.
이 3줄 없어도 되는건가요?
여기다 넣어주세요에 넣으시라구요...
초대장 기능이 있었군요~
감사합니다.^^
(+추천!)
all 파일 넣고

/adm/invitation_code_install.php

입력하면 창뜰때 글씨가 깨지네요... (UTF-8 인데...)

저렇게 되고 초대장메뉴가 생성되긴 하는데...

초대장을 만들면

유효기간이 0000-00-00 이렇게 뜹니다...

실제로 초대장입력해봐도 유효기간 지나나고 뜨네요....

어떻게 해야할까요...
수동으로 넣을 수있게 친절히 설명해주셔서 매번 찾아와서 보고 갑니당 헤헤
추천을 안눌럿엇네 !
감사합니다. ^^
좋은 기능입니다~
배추패밀리의 초대장 기능은 돈주고 사야해서 ㅜㅜ
배추패밀리 되기 전까지는 이거 써야겠습니다...
설치해보니 config 테이블에 필드가 생성안되서 수동으로 한 것만 빼면 설명해주신대로 해서 잘 되네요.
공개해주셔서 감사합니다.
유용하게 잘 사용하겠습니다.

댓글 작성

댓글을 작성하시려면 로그인이 필요합니다.

로그인하기

그누4 스킨

스킨의 저작권은 해당 스킨 제작자님께 있으며, 그누보드의 저작권과 다를 수 있습니다.
스킨 다운로드시 좋아요와 감사의 코멘트를 남기시면 제작자에게 큰 힘이됩니다. ^^y
그누보드와 관련이 있지만 스킨과 빌더가 아니면 플러그인 게시판에 올려주세요.
번호 분류 제목 글쓴이 날짜 조회
5847 최신글 7년 전 조회 5,375
5846 전체검색 7년 전 조회 4,218
5845 디자인 7년 전 조회 5,459
5844 최신글 8년 전 조회 6,553
5843 최신글 8년 전 조회 6,341
5842 게시판 8년 전 조회 7,604
5841 게시판 8년 전 조회 7,242
5840 회원가입 8년 전 조회 4,426
5839 달력 9년 전 조회 5,315
🐛 버그신고