타 회원 여부필드 글입력 방법 정보
타 회원 여부필드 글입력 방법본문
이건 어디서부터 어떻게 어떤방식으로 질문해야 할지부터가 막막하네요...
그냥 주절이 주절이 막연하게 질문 드리는 점 죄송합니다... ㅜㅜ;;
*. 회원 여분필드를 사용합니다.
- 여기서 회원 여분필드란 타 회원 여분필드를 사용하고자 합니다.
1. 우선 제 아이디가 ABC입니다.
2. 타 회원 아이디 KKK 입니다.
3. 제가 신청 버튼을 클릭하면 타회원 즉 아이디 KKK님의 여분필드 mb_10에 제 아이디 ABC가 입력되었으면 합니다.
- 막연한 구상에서 실행할려니 초보로서 어디서부터 어떻게 해야할지 모르겠습니다.
* 추가 질문 가능하면 미리 합니다.
1. 위와 같이 되는 것이 가능하다면 KKK님의 회원 여분필드 mb_10에 제 아이디 ABC가 입력됩니다.
2. 이 때 다른 회원이 신청을 하면 KKK님의 회원 여분필드 mb_10에 배열로 같이 입력되었으면 합니다.
- 나 이외에 BBB님이 신청하였다면 KKK님의 여분필드 mn_10에 ABC|BBB 와 같이
* 제가 그 동안 몇번 질문드리면서 포인트 다 쓰고 나름 열심히 모은 나머지 포인트 에누리 절삭하고 몽땅 올립니다.
- 제발 가능한 답변 해주시는 분 계셨으면 하는 바램입니다.
* 제가 초보인지라 전문적 간략한 답변은 제가 답변적 차원을 떠나 받아들이는 저로서 어려움이 있습니다. 제발... ㅜㅜ;; 초보 알아 들을 수 있게 설명 부탁드립니다.
그냥 주절이 주절이 막연하게 질문 드리는 점 죄송합니다... ㅜㅜ;;
*. 회원 여분필드를 사용합니다.
- 여기서 회원 여분필드란 타 회원 여분필드를 사용하고자 합니다.
1. 우선 제 아이디가 ABC입니다.
2. 타 회원 아이디 KKK 입니다.
3. 제가 신청 버튼을 클릭하면 타회원 즉 아이디 KKK님의 여분필드 mb_10에 제 아이디 ABC가 입력되었으면 합니다.
- 막연한 구상에서 실행할려니 초보로서 어디서부터 어떻게 해야할지 모르겠습니다.
* 추가 질문 가능하면 미리 합니다.
1. 위와 같이 되는 것이 가능하다면 KKK님의 회원 여분필드 mb_10에 제 아이디 ABC가 입력됩니다.
2. 이 때 다른 회원이 신청을 하면 KKK님의 회원 여분필드 mb_10에 배열로 같이 입력되었으면 합니다.
- 나 이외에 BBB님이 신청하였다면 KKK님의 여분필드 mn_10에 ABC|BBB 와 같이
* 제가 그 동안 몇번 질문드리면서 포인트 다 쓰고 나름 열심히 모은 나머지 포인트 에누리 절삭하고 몽땅 올립니다.
- 제발 가능한 답변 해주시는 분 계셨으면 하는 바램입니다.
* 제가 초보인지라 전문적 간략한 답변은 제가 답변적 차원을 떠나 받아들이는 저로서 어려움이 있습니다. 제발... ㅜㅜ;; 초보 알아 들을 수 있게 설명 부탁드립니다.
댓글 전체
쉽게설명하긴 힘들고 코딩은 몇줄안될듯하네요 -ㅂ-;;;
jquery를 쓰면 페이지 이동없이도 가능할듯하고
아 별로어렵진않는데 설명하려니 어떻게 표현할길이 없네요 ...
jquery를 쓰면 페이지 이동없이도 가능할듯하고
아 별로어렵진않는데 설명하려니 어떻게 표현할길이 없네요 ...
그냥 추천인" 기능을 쓰시고요.
피 추천인은 회원 중에서 나"를 추천인"으로 한 사람을 보여 주면 됩니다.
피 추천인은 회원 중에서 나"를 추천인"으로 한 사람을 보여 주면 됩니다.
<form name="frm" method="post" action="update.php">
<input type="hidden" name="mb_id" value="KKK" />
<form>
update.php
sql_query("update $g4['member_table'] set mb_10 = concat($member['mb_id'], "|") where mb_id = '{$_POST['mb_id']}'");
간단하게는 이렇게 구현이 가능합니다만... 파라메터 조작이 가능합니다..
<input type="hidden" name="mb_id" value="KKK" />
<form>
update.php
sql_query("update $g4['member_table'] set mb_10 = concat($member['mb_id'], "|") where mb_id = '{$_POST['mb_id']}'");
간단하게는 이렇게 구현이 가능합니다만... 파라메터 조작이 가능합니다..
질문의 요지는
가입할때 http://freeimage.kr/bbs/register.php?rid=KKK 라고 한뒤 가입하면
KKK아이디에 ABC 가 추천인으로 된다는 거죠~ ^^
1. register.php 에서
// 로그인중인 경우 회원가입 할 수 없습니다.
if ($member[mb_id])
goto_url($g4[path]); 다음줄에 다음줄 추가
set_session("ss_rid", $_GET[rid]); // 추천인을 세션으로 저장
// -> set_session 이 안되면 $_SESSION["ss_rid"]=$_GET[rid];
2. register_form_update.php
// 추천인에게 포인트 부여
if ($config[cf_use_recommend] && $mb_recommend)
insert_point($mb_recommend, $config[cf_recommend_point], "{$mb_id}의 추천인", '@member', $mb_recommend, "{$mb_id} 추천"); 다음줄에..
sql_query("update $g4['member_table'] set mb_10 = mb_10+'|$mb_id' where mb_id='".get_session("ss_rid")."' ");
// -> ge_session 이 안되면 $_SESSION["ss_rid"] 로 변경;
이렇게 작성하시면 되겠네요.^^ (테스트는 안해봤습니다. )
가입할때 http://freeimage.kr/bbs/register.php?rid=KKK 라고 한뒤 가입하면
KKK아이디에 ABC 가 추천인으로 된다는 거죠~ ^^
1. register.php 에서
// 로그인중인 경우 회원가입 할 수 없습니다.
if ($member[mb_id])
goto_url($g4[path]); 다음줄에 다음줄 추가
set_session("ss_rid", $_GET[rid]); // 추천인을 세션으로 저장
// -> set_session 이 안되면 $_SESSION["ss_rid"]=$_GET[rid];
2. register_form_update.php
// 추천인에게 포인트 부여
if ($config[cf_use_recommend] && $mb_recommend)
insert_point($mb_recommend, $config[cf_recommend_point], "{$mb_id}의 추천인", '@member', $mb_recommend, "{$mb_id} 추천"); 다음줄에..
sql_query("update $g4['member_table'] set mb_10 = mb_10+'|$mb_id' where mb_id='".get_session("ss_rid")."' ");
// -> ge_session 이 안되면 $_SESSION["ss_rid"] 로 변경;
이렇게 작성하시면 되겠네요.^^ (테스트는 안해봤습니다. )
아마도 스타와 같은 게임을 같이 하려고 신청하는 페이지를 구현하고자 하는 것 같네요. 만일 제 생각이 맞다면 위의 로빈아빠님은 잘못 이해하고 있다고 보면 될 것 같습니다.
간단하게 구현을 해보았습니다. 이 페이지를 더 수정하면 될 것 같네요:
<?php
/*
이 코드는 따로 업데이트 페이지를 갖지 않고 한 페이지에서 처리하도록 만들었습니다.
만일 따로 업데이트 하는 페이지를 만든다면 아래 하단 <form>의 action을 업데이트 페이지로 설정하면 됩니다...
*/
include_once("./_common.php");
//include_once("$g4[path]/lib/latest.lib.php");
$g4['title'] = "신청하기";
include_once("./_head.php");
if (!$member['mb_id']) {
// 로그인되어 있지 않으면 먼저 로그인부터 해야 한다.
alert('로그인부터 진행하셔야 합니다!', "$g4[path]/bbs/login.php?url=".urlencode($_SERVER['PHP_SELF']));
}
/* 여기서는 폼의 액션을 PHP_SELF로 했습니다. 만일 따로 페이지를 두고자 한다면 바꾸시면 됩니다. {{{ */
if ($_POST['submit'] || $_POST['submit'] == '신청') {
$req_mb_id = $_POST['req_mb_id'];
// $req_mb_id가 올바른 아이디 문자로 되어 있다면
if (preg_match('/^([a-z_0-9]+)$/i', $req_mb_id)) {
// 먼저 $req_mb_id라는 아이디가 있는지 확인한다...
// 차단, 탈퇴 여부 및 이메일 인증 확인 뿐 아니라 mb_10이라는 여분 필드를 가져와야 한다.
$mb = get_member($req_mb_id, 'mb_id, mb_name, mb_nick, mb_intercept_date, mb_leave_date, mb_email_certify, mb_10');
if ($mb && $mb['mb_intercept_date'] == "" && $mb['mb_leave_date'] == "" && (!$config['cf_use_email_certify'] || preg_match('/[1-9]/', $mb['mb_email_certify'])) ) {
// 회원이 존재하고 차단, 탈퇴한 회원이 아니고 email 인증도 받은 정상 회원이라면
// 여분 필드 mb_10에 나의 아이디를 넣는다...
// 신청인의 집합에 먼저 내 아이디가 없는지를 살펴본다. 만약에 없으면
if (!preg_match("/\b$member[mb_id]\b/", $mb['mb_10'])) {
// 신청할 내 아이디 추가
$req_mb_ids = strlen(trim($mb['mb_10'])) ? trim($mb['mb_10']).'!'.$member['mb_id'] : $member['mb_id'];
$sql = "update $g4[member_table]
set mb_10 = '$req_mb_ids'
where mb_id = '$req_mb_id'";
sql_query($sql);
echo ($config['cf_use_nick'] ? $mb['mb_nick'] : $mb['mb_id']).'에게 신청하였습니다.<br /><br />';
}
}
}
}
/* }}} */
?>
<form name="frm" method="post" action="<?php echo $_SERVER['PHP_SELF'];?>">
<!-- 여기에 원하는 형태의 폼을 작성해 줍니다 !-->
신청하고 싶은 아이디를 적어주세요: <input type="text" name="req_mb_id" size="15" value="" />
<input type="submit" name="submit" value="신청" />
</form>
<?
include_once("./_tail.php");
?>
간단하게 구현을 해보았습니다. 이 페이지를 더 수정하면 될 것 같네요:
<?php
/*
이 코드는 따로 업데이트 페이지를 갖지 않고 한 페이지에서 처리하도록 만들었습니다.
만일 따로 업데이트 하는 페이지를 만든다면 아래 하단 <form>의 action을 업데이트 페이지로 설정하면 됩니다...
*/
include_once("./_common.php");
//include_once("$g4[path]/lib/latest.lib.php");
$g4['title'] = "신청하기";
include_once("./_head.php");
if (!$member['mb_id']) {
// 로그인되어 있지 않으면 먼저 로그인부터 해야 한다.
alert('로그인부터 진행하셔야 합니다!', "$g4[path]/bbs/login.php?url=".urlencode($_SERVER['PHP_SELF']));
}
/* 여기서는 폼의 액션을 PHP_SELF로 했습니다. 만일 따로 페이지를 두고자 한다면 바꾸시면 됩니다. {{{ */
if ($_POST['submit'] || $_POST['submit'] == '신청') {
$req_mb_id = $_POST['req_mb_id'];
// $req_mb_id가 올바른 아이디 문자로 되어 있다면
if (preg_match('/^([a-z_0-9]+)$/i', $req_mb_id)) {
// 먼저 $req_mb_id라는 아이디가 있는지 확인한다...
// 차단, 탈퇴 여부 및 이메일 인증 확인 뿐 아니라 mb_10이라는 여분 필드를 가져와야 한다.
$mb = get_member($req_mb_id, 'mb_id, mb_name, mb_nick, mb_intercept_date, mb_leave_date, mb_email_certify, mb_10');
if ($mb && $mb['mb_intercept_date'] == "" && $mb['mb_leave_date'] == "" && (!$config['cf_use_email_certify'] || preg_match('/[1-9]/', $mb['mb_email_certify'])) ) {
// 회원이 존재하고 차단, 탈퇴한 회원이 아니고 email 인증도 받은 정상 회원이라면
// 여분 필드 mb_10에 나의 아이디를 넣는다...
// 신청인의 집합에 먼저 내 아이디가 없는지를 살펴본다. 만약에 없으면
if (!preg_match("/\b$member[mb_id]\b/", $mb['mb_10'])) {
// 신청할 내 아이디 추가
$req_mb_ids = strlen(trim($mb['mb_10'])) ? trim($mb['mb_10']).'!'.$member['mb_id'] : $member['mb_id'];
$sql = "update $g4[member_table]
set mb_10 = '$req_mb_ids'
where mb_id = '$req_mb_id'";
sql_query($sql);
echo ($config['cf_use_nick'] ? $mb['mb_nick'] : $mb['mb_id']).'에게 신청하였습니다.<br /><br />';
}
}
}
}
/* }}} */
?>
<form name="frm" method="post" action="<?php echo $_SERVER['PHP_SELF'];?>">
<!-- 여기에 원하는 형태의 폼을 작성해 줍니다 !-->
신청하고 싶은 아이디를 적어주세요: <input type="text" name="req_mb_id" size="15" value="" />
<input type="submit" name="submit" value="신청" />
</form>
<?
include_once("./_tail.php");
?>
아이디 기록 응용