로그인 안한 날들 계산하여 포인트 감소기능 - (로그인시)수정1
2006.4.4 수정
설명..
==========================
최종로그인을 한 뒤 3일 동안 로그인을 안했다면, 1일당 1000점씩 총 3000포인트를
회원의 현재 포인트에서 삭감합니다. 최종로그인을 했던 날과 현재 로그인을 하고 있는
당일은 제외하고 그 사이의 날들을 로그인 안 한 날들로 처리했습니다.
3일이 지났을때에만 기능이 작동합니다. $limit_day = 3 이 부분을 수정하면 몇일이 지난
경우부터 적용시킬지 정할 수가 있습니다.
현재는 1일당 1000으로 되어 있는데요. 아래 소스의 $dp = 1000; 부분을 적절히 수정하시면
1일당 삭감될 포인트값을 정의 하실 수 있습니다. 적절히 수정하시면 되겠습니다.
$dp = 100; 요렇게 바꾸시면 로그인 하루 안할때마다 포인트 100점씩 깍이겠지요.
로그인 안한 날이 너무 길어서, 삭감 처리 후 포인트 잔고가 마이너스가 되는 경우엔
포인트 초기화 지원금을 주도록 하였습니다. 현재 100포인트로 초기화 되도록 셋팅되어
있습니다. 이 부분은 $reset_point = 100; 를 적절히 수정하시면 됩니다.
현재 관리자가 아니고 랩이 7 아래일때만 적용되도록 해놓았습니다. 수정하시려면,
if (!$is_admin && $mb[mb_level] < 7 ) 이 부분을 수정하시면 됩니다.
포인트 처리사항은 포인트 내역에 기록됩니다.
※포인트가 활동에 중요한 역활을 하는 경우라면..
1.적절히 조정하지 않으면 너무 심한 압박이 될 수도 있으므로 주의해야 합니다.
2.로그인 활동이 거의 없는 회원들의 포인트가 고스란히 쌓여 있는 것에 제제를 가합니다.
-로그인 잘하는 회원보다 간혹 포인트가 더 많은 경우가 생기는 불균형.
↓작업시작
==========================
1.
extend/xxx.php라는 파일이 있다고 가정하고, 그 안에 아래 소스를 삽입하시면 되겠습니다.
아래 내용은 전체소스입니다. 필요한 부분만 취하셔도 되겠습니다.
<?
if (!defined("_GNUBOARD_")) exit; // 개별페이지 접근불가
<!--소스삽입시작-->
//로그인 안한 날들 계산하여 포인트 감소처리 - 회원전용
//사용위치는 login_check.php
//예) nologin_minus_point($mb[mb_id]);
function nologin_minus_point($mb_id) {
global $g4;
global $is_admin;
if ($mb_id) {
$mb = get_member($mb_id);
if (!$is_admin && $mb[mb_level] < 7 ) {
// 회원 최종로그인 후 몇일째인지? + 1 은 당일을 포함한다는 뜻
$sql = " select (TO_DAYS('$g4[time_ymdhis]') - TO_DAYS('$mb[mb_today_login]') + 1) as days ";
$row = sql_fetch($sql);
$mb_login_after = $row[days];
if ($mb_login_after > 1) {
// 회원 최종로그인 한 날과 당일을 제외하고 로그인 안한 날수
$not_login_days = $mb_login_after - 2;
$dp = 1000; //★1일당 감소할 포인트값(단위)
$reset_point = 100; //초기화 포인트값 (지원금)
$minus_point = $not_login_days * $dp * (-1); //1일당 -$dp씩 감소
// 잔고가 마이너스 될 경우 포인트 초기화 지원금
if (($mb[mb_point] + $minus_point) <= 0) {
$minus_point = ($mb[mb_point] * (-1)) + $reset_point; //초기화를 위한 지원금 적용
}
}
$limit_day = 3; //★몇일 로그인 안하면 적용할지 정함
if ($not_login_days >= $limit_day && $minus_point) { //
insert_point($mb[mb_id], $minus_point, "{$not_login_days}일 동안 로그인 안 해 포인트감소", '', '', ''); //포인트감소
$ment = "{$not_login_days}일 동안 로그인 활동이 없었으므로 {$minus_point}점의 포인트가 감소되었습니다.\\n\\n1) {$limit_day}일 이상일때만 적용하며, 1일당 {$dp}포인트씩 감소됩니다.\\n2) 전체포인트가 0보다 작아지면 {$reset_point}으로 자동초기화 됩니다.";
echo "<script language='JavaScript'>alert(\"{$ment}\");</script>";
}
}
}
return;
}
<!--소스삽입끝-->
?>
==========================
2.
bbs/login_check.php 화일을 여시고
제일 마지막 줄의 goto_url($link); 윗 줄즘에..
nologin_minus_point($mb[mb_id]); //★로그인 안한 날들 계산하여 포인트 삭감처리
goto_url($link);
위와 같이 삽입하시면 되겠습니다.
☆
원본 소스를 건드리고 싶지 않으시다면,
멤버스킨/login_check.skin.php 생성하여 넣으셔도 문제 없을 듯 합니다.
※로그인 채크시 한번만 적용될 것입니다.
==========================
↑작업끝
설명..
==========================
최종로그인을 한 뒤 3일 동안 로그인을 안했다면, 1일당 1000점씩 총 3000포인트를
회원의 현재 포인트에서 삭감합니다. 최종로그인을 했던 날과 현재 로그인을 하고 있는
당일은 제외하고 그 사이의 날들을 로그인 안 한 날들로 처리했습니다.
3일이 지났을때에만 기능이 작동합니다. $limit_day = 3 이 부분을 수정하면 몇일이 지난
경우부터 적용시킬지 정할 수가 있습니다.
현재는 1일당 1000으로 되어 있는데요. 아래 소스의 $dp = 1000; 부분을 적절히 수정하시면
1일당 삭감될 포인트값을 정의 하실 수 있습니다. 적절히 수정하시면 되겠습니다.
$dp = 100; 요렇게 바꾸시면 로그인 하루 안할때마다 포인트 100점씩 깍이겠지요.
로그인 안한 날이 너무 길어서, 삭감 처리 후 포인트 잔고가 마이너스가 되는 경우엔
포인트 초기화 지원금을 주도록 하였습니다. 현재 100포인트로 초기화 되도록 셋팅되어
있습니다. 이 부분은 $reset_point = 100; 를 적절히 수정하시면 됩니다.
현재 관리자가 아니고 랩이 7 아래일때만 적용되도록 해놓았습니다. 수정하시려면,
if (!$is_admin && $mb[mb_level] < 7 ) 이 부분을 수정하시면 됩니다.
포인트 처리사항은 포인트 내역에 기록됩니다.
※포인트가 활동에 중요한 역활을 하는 경우라면..
1.적절히 조정하지 않으면 너무 심한 압박이 될 수도 있으므로 주의해야 합니다.
2.로그인 활동이 거의 없는 회원들의 포인트가 고스란히 쌓여 있는 것에 제제를 가합니다.
-로그인 잘하는 회원보다 간혹 포인트가 더 많은 경우가 생기는 불균형.
↓작업시작
==========================
1.
extend/xxx.php라는 파일이 있다고 가정하고, 그 안에 아래 소스를 삽입하시면 되겠습니다.
아래 내용은 전체소스입니다. 필요한 부분만 취하셔도 되겠습니다.
<?
if (!defined("_GNUBOARD_")) exit; // 개별페이지 접근불가
<!--소스삽입시작-->
//로그인 안한 날들 계산하여 포인트 감소처리 - 회원전용
//사용위치는 login_check.php
//예) nologin_minus_point($mb[mb_id]);
function nologin_minus_point($mb_id) {
global $g4;
global $is_admin;
if ($mb_id) {
$mb = get_member($mb_id);
if (!$is_admin && $mb[mb_level] < 7 ) {
// 회원 최종로그인 후 몇일째인지? + 1 은 당일을 포함한다는 뜻
$sql = " select (TO_DAYS('$g4[time_ymdhis]') - TO_DAYS('$mb[mb_today_login]') + 1) as days ";
$row = sql_fetch($sql);
$mb_login_after = $row[days];
if ($mb_login_after > 1) {
// 회원 최종로그인 한 날과 당일을 제외하고 로그인 안한 날수
$not_login_days = $mb_login_after - 2;
$dp = 1000; //★1일당 감소할 포인트값(단위)
$reset_point = 100; //초기화 포인트값 (지원금)
$minus_point = $not_login_days * $dp * (-1); //1일당 -$dp씩 감소
// 잔고가 마이너스 될 경우 포인트 초기화 지원금
if (($mb[mb_point] + $minus_point) <= 0) {
$minus_point = ($mb[mb_point] * (-1)) + $reset_point; //초기화를 위한 지원금 적용
}
}
$limit_day = 3; //★몇일 로그인 안하면 적용할지 정함
if ($not_login_days >= $limit_day && $minus_point) { //
insert_point($mb[mb_id], $minus_point, "{$not_login_days}일 동안 로그인 안 해 포인트감소", '', '', ''); //포인트감소
$ment = "{$not_login_days}일 동안 로그인 활동이 없었으므로 {$minus_point}점의 포인트가 감소되었습니다.\\n\\n1) {$limit_day}일 이상일때만 적용하며, 1일당 {$dp}포인트씩 감소됩니다.\\n2) 전체포인트가 0보다 작아지면 {$reset_point}으로 자동초기화 됩니다.";
echo "<script language='JavaScript'>alert(\"{$ment}\");</script>";
}
}
}
return;
}
<!--소스삽입끝-->
?>
==========================
2.
bbs/login_check.php 화일을 여시고
제일 마지막 줄의 goto_url($link); 윗 줄즘에..
nologin_minus_point($mb[mb_id]); //★로그인 안한 날들 계산하여 포인트 삭감처리
goto_url($link);
위와 같이 삽입하시면 되겠습니다.
☆
원본 소스를 건드리고 싶지 않으시다면,
멤버스킨/login_check.skin.php 생성하여 넣으셔도 문제 없을 듯 합니다.
※로그인 채크시 한번만 적용될 것입니다.
==========================
↑작업끝
댓글 14개
19년 전
좋은팁이군요
19년 전
멋진 팁입니다.
cron에 접근권한이 있는 경우라면,
crontab으로 돌렸었다지요*^^*
cron에 접근권한이 있는 경우라면,
crontab으로 돌렸었다지요*^^*
Photofly
19년 전
쓸모있는 팁 감사합니다....^^
19년 전
좋은 팁 감사합니다.
그런데
extend/xxx.php라는 파일이 있다고 가정하고, 그 안에 아래 소스를 삽입하시면 되겠습니다.
아래 내용은 전체소스입니다. 필요한 부분만 취하셔도 되겠습니다.
이 말은 extend폴더에 있는 파일중 아무 파일에 추가를 해도 상관이 없다는 말씀이신가요?
아무파일에 추가해도 상관이 없다면.. 새파일을 만들어서 집어넣기만 해도 되는건가요?
그런데
extend/xxx.php라는 파일이 있다고 가정하고, 그 안에 아래 소스를 삽입하시면 되겠습니다.
아래 내용은 전체소스입니다. 필요한 부분만 취하셔도 되겠습니다.
이 말은 extend폴더에 있는 파일중 아무 파일에 추가를 해도 상관이 없다는 말씀이신가요?
아무파일에 추가해도 상관이 없다면.. 새파일을 만들어서 집어넣기만 해도 되는건가요?
19년 전
넵.. extend안의 기존 파일에 소스삽입부분만 삽입하셔도 되고, 독립파일로 넣으셔도 됩니다. 파일이름은 상관없습니다. 1.번 작업은 자동차 엔진 부분이구요. 2.번 작업은 그 엔진을 작동시키는 스위치 같은 부분입니다.
19년 전
좋은 팁입니다.
감사드립니다.
감사드립니다.
pearly
19년 전
무서븐 팁이군요... ^^;; 협박같은...
안들어오면 짤리는거야 그런거야?
농담했다고 짤리는거야 그런거야? (농담이 심한거였나요?)
안들어오면 짤리는거야 그런거야?
농담했다고 짤리는거야 그런거야? (농담이 심한거였나요?)
Preware
19년 전
너무 무서운 팁이에요 ;ㅁ;
19년 전
좀 수정된 소스를 적어 봅니다.
크게 다를껀 없지만, 소스 좀 수정됐구요. 감소되는 포인트가 (현재 포인트/5)로 현재 셋팅해놨습니다.
포인트가 많건 적건간에.. 1일당 1/5의 양만큼 감소되게 했으므로, 실제적으로 줄어드는 양은 같다고
볼 수 있습니다. 비율은 적절히 조정하시면 되겠습니다.
<?
if (!defined("_GNUBOARD_")) exit; // 개별페이지 접근불가
<!--소스삽입시작-->
//로그인 안한 날들 계산하여 포인트 감소처리 - 회원전용
//사용위치는 login_check.php
//예) nologin_minus_point($mb[mb_id]);
function nologin_minus_point($mb_id) {
global $g4;
global $is_admin;
if ($mb_id) {
$mb = get_member($mb_id);
if (!$is_admin && $mb[mb_level] < 7 ) {
// 회원 최종로그인 후 몇일째인지? + 1 은 당일을 포함한다는 뜻
$sql = " select (TO_DAYS('$g4[time_ymdhis]') - TO_DAYS('$mb[mb_today_login]') + 1) as days ";
$row = sql_fetch($sql);
$mb_login_after = $row[days];
if ($mb_login_after > 1) {
// 회원 최종로그인 한 날과 당일을 제외하고 로그인 안한 날수
$not_login_days = $mb_login_after - 2;
//$dp = 1000; //★1일당 감소할 포인트값(단위)
$dp = number_format($mb[mb_point] / 5,'','',''); //★1일당 감소할 포인트값(단위) - 소수점이하 반올림후 제거 콤마(,) 없이
$reset_point = 100; //초기화 포인트값 (지원금)
$minus_point = $not_login_days * $dp * (-1); //1일당 -$dp씩 감소
// 잔고가 마이너스 될 경우 포인트 초기화 지원금
if (($mb[mb_point] + $minus_point) <= 0) {
$minus_point = ($mb[mb_point] * (-1)) + $reset_point; //초기화를 위한 지원금 적용
}
}
$limit_day = 3; //★몇일 로그인 안하면 적용할지 정함
if ($not_login_days >= $limit_day && $minus_point) { //
insert_point($mb[mb_id], $minus_point, "{$not_login_days}일 동안 로그인 안 해 포인트감소", '', '', ''); //포인트감소
$ment = "{$not_login_days}일 동안 로그인 활동이 없었으므로 {$minus_point}점의 포인트가 감소되었습니다.\\n\\n1) {$limit_day}일 이상일때만 적용하며, 1일당 {$dp}포인트씩 감소됩니다.\\n2) 전체포인트가 0보다 작아지면 {$reset_point}으로 자동초기화 됩니다.";
echo "<script language='JavaScript'>alert(\"{$ment}\");</script>";
}
}
}
return;
}
<!--소스삽입끝-->
?>
크게 다를껀 없지만, 소스 좀 수정됐구요. 감소되는 포인트가 (현재 포인트/5)로 현재 셋팅해놨습니다.
포인트가 많건 적건간에.. 1일당 1/5의 양만큼 감소되게 했으므로, 실제적으로 줄어드는 양은 같다고
볼 수 있습니다. 비율은 적절히 조정하시면 되겠습니다.
<?
if (!defined("_GNUBOARD_")) exit; // 개별페이지 접근불가
<!--소스삽입시작-->
//로그인 안한 날들 계산하여 포인트 감소처리 - 회원전용
//사용위치는 login_check.php
//예) nologin_minus_point($mb[mb_id]);
function nologin_minus_point($mb_id) {
global $g4;
global $is_admin;
if ($mb_id) {
$mb = get_member($mb_id);
if (!$is_admin && $mb[mb_level] < 7 ) {
// 회원 최종로그인 후 몇일째인지? + 1 은 당일을 포함한다는 뜻
$sql = " select (TO_DAYS('$g4[time_ymdhis]') - TO_DAYS('$mb[mb_today_login]') + 1) as days ";
$row = sql_fetch($sql);
$mb_login_after = $row[days];
if ($mb_login_after > 1) {
// 회원 최종로그인 한 날과 당일을 제외하고 로그인 안한 날수
$not_login_days = $mb_login_after - 2;
//$dp = 1000; //★1일당 감소할 포인트값(단위)
$dp = number_format($mb[mb_point] / 5,'','',''); //★1일당 감소할 포인트값(단위) - 소수점이하 반올림후 제거 콤마(,) 없이
$reset_point = 100; //초기화 포인트값 (지원금)
$minus_point = $not_login_days * $dp * (-1); //1일당 -$dp씩 감소
// 잔고가 마이너스 될 경우 포인트 초기화 지원금
if (($mb[mb_point] + $minus_point) <= 0) {
$minus_point = ($mb[mb_point] * (-1)) + $reset_point; //초기화를 위한 지원금 적용
}
}
$limit_day = 3; //★몇일 로그인 안하면 적용할지 정함
if ($not_login_days >= $limit_day && $minus_point) { //
insert_point($mb[mb_id], $minus_point, "{$not_login_days}일 동안 로그인 안 해 포인트감소", '', '', ''); //포인트감소
$ment = "{$not_login_days}일 동안 로그인 활동이 없었으므로 {$minus_point}점의 포인트가 감소되었습니다.\\n\\n1) {$limit_day}일 이상일때만 적용하며, 1일당 {$dp}포인트씩 감소됩니다.\\n2) 전체포인트가 0보다 작아지면 {$reset_point}으로 자동초기화 됩니다.";
echo "<script language='JavaScript'>alert(\"{$ment}\");</script>";
}
}
}
return;
}
<!--소스삽입끝-->
?>
19년 전
로그인 안한 회원 포인트 차감
17년 전
<!--소스삽입시작-->
<!--소스삽입끝-->
이 부분이 들어가면 소스가 작동안하네요.. 주석인데 왜그러죠?
좋은 팁 갑사합니다 추천!!
<!--소스삽입끝-->
이 부분이 들어가면 소스가 작동안하네요.. 주석인데 왜그러죠?
좋은 팁 갑사합니다 추천!!
아츠團카가
17년 전
맘에드네요 감사합니다^^
15년 전
----
12년 전
대단히 감사합니다..
alert 창에서 한글이 깨지는 이유는 무얼까요? ㅠㅠ
alert 창에서 한글이 깨지는 이유는 무얼까요? ㅠㅠ
게시글 목록
| 번호 | 제목 |
|---|---|
| 2604 | |
| 2588 | |
| 2587 | |
| 2572 | |
| 2565 | |
| 2561 | |
| 2527 | |
| 2515 | |
| 2501 | |
| 2497 | |
| 2487 | |
| 2484 | |
| 2481 | |
| 2479 | |
| 2463 | |
| 2462 | |
| 2433 | |
| 2396 | |
| 2393 | |
| 2381 |
댓글 작성
댓글을 작성하시려면 로그인이 필요합니다.
로그인하기