로그인시 기간이 끝나면 레벨다운.. 정보
로그인시 기간이 끝나면 레벨다운..본문
컨텐츠몰4를 이용해서 기간을 충전하면 등급이 되도록 하는 부분은
간신히 성공했습니다.
그런데 기간이 끝나면 다시 레벨이 다운이 되어야 하는데
좋은 방법이 없을까요??
뮤존님 팁으로 login_check.php 부분을 이용하여 로그인 할때
기간정보를 받아서 레벨을 다운시키키는 방법으로 할려고 했는데 잘 안되네요..
bbs/login_check.php 부분입니다.
<?
include_once("./_common.php");
$mb_id = $_POST[mb_id];
$mb_password = $_POST[mb_password];
if (!trim($mb_id) || !trim($mb_password))
alert("회원아이디나 패스워드가 공백이면 안됩니다.");
$mb = get_member($mb_id);
// 가입된 회원이 아니다. 패스워드가 틀리다. 라는 메세지를 따로 보여주지 않는 이유는
// 회원아이디를 입력해 보고 맞으면 또 패스워드를 입력해보는 경우를 방지하기 위해서입니다.
// 불법사용자의 경우 회원아이디가 틀린지, 패스워드가 틀린지를 알기까지는 많은 시간이 소요되기 때문입니다.
if (!$mb[mb_id] || (sql_password($mb_password) != $mb[mb_password]))
alert("가입된 회원이 아니거나 패스워드가 틀립니다.\\n\\n패스워드는 대소문자를 구분합니다.");
// 차단된 아이디인가?
if ($mb[mb_intercept_date] && $mb[mb_intercept_date] <= date("Ymd", $g4[server_time])) {
$date = preg_replace("/([0-9]{4})([0-9]{2})([0-9]{2})/", "\\1년 \\2월 \\3일", $mb[mb_intercept_date]);
alert("회원님의 아이디는 접근이 금지되어 있습니다.\\n\\n처리일 : $date");
}
// 탈퇴한 아이디인가?
if ($mb[mb_leave_date] && $mb[mb_leave_date] <= date("Ymd", $g4[server_time])) {
$date = preg_replace("/([0-9]{4})([0-9]{2})([0-9]{2})/", "\\1년 \\2월 \\3일", $mb[mb_leave_date]);
alert("탈퇴한 아이디이므로 접근하실 수 없습니다.\\n\\n탈퇴일 : $date");
}
if ($config[cf_use_email_certify] && !preg_match("/[1-9]/", $mb[mb_email_certify]))
alert("메일인증을 받으셔야 로그인 하실 수 있습니다.\\n\\n회원님의 메일주소는 $mb[mb_email] 입니다.");
$member_skin_path = "$g4[path]/skin/member/$config[cf_member_skin]";
@include_once("$member_skin_path/login_check.skin.php");
// 회원아이디 세션 생성
set_session('ss_mb_id', $mb[mb_id]);
// 3.26
// 아이디 쿠키에 한달간 저장
if ($auto_login) {
// 3.27
// 자동로그인 ---------------------------
// 쿠키 한달간 저장
$key = md5($_SERVER[SERVER_ADDR] . $_SERVER[REMOTE_ADDR] . $_SERVER[HTTP_USER_AGENT] . $mb[mb_password]);
set_cookie('ck_mb_id', $mb[mb_id], 86400 * 31);
set_cookie('ck_auto', $key, 86400 * 31);
// 자동로그인 end ---------------------------
} else {
$key = md5($_SERVER[SERVER_ADDR] . $_SERVER[REMOTE_ADDR] . $_SERVER[HTTP_USER_AGENT] . $mb[mb_password]);
setcookie(md5('ck_mb_id'), base64_encode($mb[mb_id]), 0, '/', $g4[cookie_domain]);
setcookie(md5('ck_auto'), base64_encode($key), 0, '/', $g4[cookie_domain]);
}
if ($url)
{
$link = urldecode($url);
// 2003-06-14 추가 (다른 변수들을 넘겨주기 위함)
if (preg_match("/\?/", $link))
$split= "&";
else
$split= "?";
// $_POST 배열변수에서 아래의 이름을 가지지 않은 것만 넘김
foreach($_POST as $key=>$value)
{
if ($key != "mb_id" && $key != "mb_password" && $key != "x" && $key != "y" && $key != "url")
{
$link .= "$split$key=$value";
$split = "&";
}
}
}
else
$link = $g4[path];
goto_url($link);
?>
방법 좀 부탁드립니다.
간신히 성공했습니다.
그런데 기간이 끝나면 다시 레벨이 다운이 되어야 하는데
좋은 방법이 없을까요??
뮤존님 팁으로 login_check.php 부분을 이용하여 로그인 할때
기간정보를 받아서 레벨을 다운시키키는 방법으로 할려고 했는데 잘 안되네요..
bbs/login_check.php 부분입니다.
<?
include_once("./_common.php");
$mb_id = $_POST[mb_id];
$mb_password = $_POST[mb_password];
if (!trim($mb_id) || !trim($mb_password))
alert("회원아이디나 패스워드가 공백이면 안됩니다.");
$mb = get_member($mb_id);
// 가입된 회원이 아니다. 패스워드가 틀리다. 라는 메세지를 따로 보여주지 않는 이유는
// 회원아이디를 입력해 보고 맞으면 또 패스워드를 입력해보는 경우를 방지하기 위해서입니다.
// 불법사용자의 경우 회원아이디가 틀린지, 패스워드가 틀린지를 알기까지는 많은 시간이 소요되기 때문입니다.
if (!$mb[mb_id] || (sql_password($mb_password) != $mb[mb_password]))
alert("가입된 회원이 아니거나 패스워드가 틀립니다.\\n\\n패스워드는 대소문자를 구분합니다.");
// 차단된 아이디인가?
if ($mb[mb_intercept_date] && $mb[mb_intercept_date] <= date("Ymd", $g4[server_time])) {
$date = preg_replace("/([0-9]{4})([0-9]{2})([0-9]{2})/", "\\1년 \\2월 \\3일", $mb[mb_intercept_date]);
alert("회원님의 아이디는 접근이 금지되어 있습니다.\\n\\n처리일 : $date");
}
// 탈퇴한 아이디인가?
if ($mb[mb_leave_date] && $mb[mb_leave_date] <= date("Ymd", $g4[server_time])) {
$date = preg_replace("/([0-9]{4})([0-9]{2})([0-9]{2})/", "\\1년 \\2월 \\3일", $mb[mb_leave_date]);
alert("탈퇴한 아이디이므로 접근하실 수 없습니다.\\n\\n탈퇴일 : $date");
}
if ($config[cf_use_email_certify] && !preg_match("/[1-9]/", $mb[mb_email_certify]))
alert("메일인증을 받으셔야 로그인 하실 수 있습니다.\\n\\n회원님의 메일주소는 $mb[mb_email] 입니다.");
$member_skin_path = "$g4[path]/skin/member/$config[cf_member_skin]";
@include_once("$member_skin_path/login_check.skin.php");
// 회원아이디 세션 생성
set_session('ss_mb_id', $mb[mb_id]);
// 3.26
// 아이디 쿠키에 한달간 저장
if ($auto_login) {
// 3.27
// 자동로그인 ---------------------------
// 쿠키 한달간 저장
$key = md5($_SERVER[SERVER_ADDR] . $_SERVER[REMOTE_ADDR] . $_SERVER[HTTP_USER_AGENT] . $mb[mb_password]);
set_cookie('ck_mb_id', $mb[mb_id], 86400 * 31);
set_cookie('ck_auto', $key, 86400 * 31);
// 자동로그인 end ---------------------------
} else {
$key = md5($_SERVER[SERVER_ADDR] . $_SERVER[REMOTE_ADDR] . $_SERVER[HTTP_USER_AGENT] . $mb[mb_password]);
setcookie(md5('ck_mb_id'), base64_encode($mb[mb_id]), 0, '/', $g4[cookie_domain]);
setcookie(md5('ck_auto'), base64_encode($key), 0, '/', $g4[cookie_domain]);
}
if ($url)
{
$link = urldecode($url);
// 2003-06-14 추가 (다른 변수들을 넘겨주기 위함)
if (preg_match("/\?/", $link))
$split= "&";
else
$split= "?";
// $_POST 배열변수에서 아래의 이름을 가지지 않은 것만 넘김
foreach($_POST as $key=>$value)
{
if ($key != "mb_id" && $key != "mb_password" && $key != "x" && $key != "y" && $key != "url")
{
$link .= "$split$key=$value";
$split = "&";
}
}
}
else
$link = $g4[path];
goto_url($link);
?>
방법 좀 부탁드립니다.
댓글 전체
컨텐츠몰4를 이용해서 기간을 충전하면 등급이 되도록 하는 부분은
간신히 성공했습니다.
==> 등업시킬때 만료기간을 계산해서 여분필드에 저장시킵니다. 예) mb_1 : 2009-05-01
그리고 사용하는 회원스킨폴더의 login_check.skin.php에
if($mb['mb_1'] && $g4['time_ymd'] > $mb['mb_1'])
{
sql_query("UPDATE {$g4['member_table']} SET mb_level = '원래등급', mb_1 = '' WHERE mb_id = '{$mb['mb_id']}'");
}
간신히 성공했습니다.
==> 등업시킬때 만료기간을 계산해서 여분필드에 저장시킵니다. 예) mb_1 : 2009-05-01
그리고 사용하는 회원스킨폴더의 login_check.skin.php에
if($mb['mb_1'] && $g4['time_ymd'] > $mb['mb_1'])
{
sql_query("UPDATE {$g4['member_table']} SET mb_level = '원래등급', mb_1 = '' WHERE mb_id = '{$mb['mb_id']}'");
}