초대장 기능~~ 두 번째 수정 되었습니다.
기능은 가입 자체를 초대한(초대코드를 가지고 있는) 사람만 가입 시키는 코드가 되겠습니다.
기준은 그누보드 기본팩 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> <b>초대장 코드</b></td>
<td width=""> <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
부분입니다.
회원 정보 수정시 오루가 다는 현상때문에 수정 되었습니다
기준은 그누보드 기본팩 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> <b>초대장 코드</b></td>
<td width=""> <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
부분입니다.
회원 정보 수정시 오루가 다는 현상때문에 수정 되었습니다
첨부파일
|
댓글 작성
댓글을 작성하시려면 로그인이 필요합니다.
로그인하기
댓글 41개
일단 자러 가야 겠네요.
피곤해요 ㅠㅠ
DB초기화 하면 초대장으로 가입한 회원 모두 삭제되나요?
초대장 코드 쪽만 초기화 됩니다.
물론 가입은 됩니다. 하지만 관리자 초대장 화면에서 누가 가입했는지 알수 없습니다
하지만 아직 관리자화면에서는 누가 사용했는지 알수없네요
계정/skin/member/basic/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);
}
?>
이렇게 넣었는데 아직도 그러네요 .
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가 오류 걸린다고 뜨고..;;
회원가입약관의 내용에 동의하셔야 회원 가입 하실수 있습니다...라고 떠요..;;;
뭐가 문제일까요...;;
설명에 나와 있는 코드가 추가 안되 있는거 같애요..;
<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?>'>
감사합니다~ 필요한 기능이였는데.. 잘쓰겠습니다^^
alert("이미 가입한 아이디입니다.");
여기다 넣어 주세요~~
$sql = " insert into $g4[member_table]
set mb_id = '$mb_id',
mb_password = '".sql_password($mb_password)."',
이거 때문에 가입시 에러뜨네요. 위 3줄 없애니까 잘 되네요.
이 3줄 없어도 되는건가요?
감사합니다.^^
(+추천!)
/adm/invitation_code_install.php
입력하면 창뜰때 글씨가 깨지네요... (UTF-8 인데...)
저렇게 되고 초대장메뉴가 생성되긴 하는데...
초대장을 만들면
유효기간이 0000-00-00 이렇게 뜹니다...
실제로 초대장입력해봐도 유효기간 지나나고 뜨네요....
어떻게 해야할까요...
추천을 안눌럿엇네 !
좋은 기능입니다~
배추패밀리의 초대장 기능은 돈주고 사야해서 ㅜㅜ
배추패밀리 되기 전까지는 이거 써야겠습니다...
공개해주셔서 감사합니다.
유용하게 잘 사용하겠습니다.