테스트 사이트 - 개발 중인 베타 버전입니다

나이로 사용 제한하기 - 회원전용(수정3)

s1.jpg
s2.jpg
s4.jpg
회원님의 생년월일을 이용해서 만 나이로 사용에 제약을 두는 함수입니다.


예를 들면, view.skin.php 또는 list.skin.php 화일을 열고..

==============================
<?
if (!defined("_GNUBOARD_")) exit; // 개별 페이지 접근 불가
age_alert(19,'down','humor'); //★나이로 사용 제한하기 - 회원전용
?>
아래 내용...생략
==============================
위에 처럼 넣으셨다면...
※humor게시판에서 만 19세 미만의 회원이 글내용 또는 글목록을 보려는 순간 에러 뿌려주고 이전페이지로 이동하겠죠.


수정 : 2005.1.15
-특정게시판일때만 적용시키기 추가
-관리자제외추가
수정 : 2005.1.17
-특정게시물일때만 적용시키기 추가
★수정 : 2006.4.15
-죄송합니다 .문제가 있었네요. 수정요

↓작업시작요..
=====================================================
1.
extend 방에 xxx.php라는 화일이 있다고 치고요. 그 문서 안에 아래 소스를 통째로
넣고 저장하셔도 되고, 소스삽입 부분만 옮겨서 원하는 부분에 넣고 쓰셔도 되겠습니다.


<?
if (!defined("_GNUBOARD_")) exit; // 개별페이지 접근불가

//== 소스 삽입 시작 ==

//나이로 사용 제한하기 (성인인증) - 회원전용 (by 아쵸오)
//예제1) age_alert(19,'down'); //19세 미만의 회원은 이용하실 수 없습니다.
//예제2) age_alert(25,'up'); //25세 이상의 회원은 이용하실 수 없습니다.
//예제3) age_alert(); //주민등록번호가 있는지만 채크할때..
//예제) age_alert('','','humor') //humor 게시판 일때만 작동하겠습니다. (예제3)
//예제) age_alert(19,'down','humor') //humor 게시판 일때만 작동하겠습니다 (예제1)
//예제) age_alert(19,'down','humor',123) //humor 게시판의 wr_id=123 일때만 작동하겠습니다 (예제1)

function age_alert($age='',$ud='down',$table='',$wid='') {

global $g4;
global $member;
global $bo_table;
global $wr_id;
global $is_admin;

if (!$bo_table) $bo_table = $table;
if (!$wr_id) $wr_id = $wid;
if ($member[mb_id] && !$is_admin && (!$table || $table == $bo_table) && (!$wid || $wid == $wr_id)) {
//주민등록번호가 없는 회원은 이용 못하게 하려면 주석을 제거하세요.
//if (!$member[mb_jumin]) alert("{$member[mb_nick]}님은 주민등록번호가 없으므로 이용하실 수 없습니다.\\n\\n관리자에게 문의하세요.");

if ($age && $ud && $member[mb_birth]) {
$oa = date('Y') - substr($member[mb_birth],0,4);
if ($ud == "down" && $oa < $age)
alert("만 {$age}세 미만의 회원은 이용하실 수 없습니다. \\n\\n{$member[mb_nick]}님은 만 {$oa}세입니다.");

if ($ud == "up" && $oa >= $age)
alert("만 {$age}세 이상의 회원은 이용하실 수 없습니다. \\n\\n{$member[mb_nick]}님은 만 {$oa}세입니다.");
}
}
return;
}

//== 소스 삽입 끝 ==

?>
=====================================================
↓작업끝요..

댓글 작성

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

로그인하기

댓글 23개

내용만 많아 보일뿐...
<?
if ($member[mb_birth] && substr(date('Ymd'),0,4) - substr($member[mb_birth],0,4) < 19) alert("미성년자네요");
?>

또는

<?
if ($member[mb_birth] && substr(date('Ymd'),0,4) - substr($member[mb_birth],0,4) >= 19) alert("성인이시네요");
?>

그냥 이런식으로 원하는 부분에 넣고 쓰시는거랑 다를께 없습니다.;;
죄송한 부탁이지만 원하는 게시판에만 지정해서 쓰려면 어떻게 해야될까요?
해당스킨의 view.skin.php 또는 list.skin.php 파일에 넣으세요..
두군데 다 넣으셔도 되고요..
굳이 스킨을 따로만들지 않아도 되지안을까 싶어서요
간단하고 좋은 팁 감사합니다...^^

age_alert(19,'down'); //★나이로 사용 제한하기 - 회원전용
이것을 스킨파일에 넣지 않고,
bbs/view.php 또는bbs/ list.php 파일에 넣으면 전체 게시판에 적용되겠네요...
19세 인증 관련 팁 게시물에 이어서 작업 해야되는거예요??
스킨에 위의 팁만 적용했는데 잘 되네요.....^^
단, 비회원은 체크가 안되니까 게시판의 사용권한을 회원으로 하셔야 합니다..
게시판 지정해서 적용하는 법
if (strpos("|게시판아이디A|게시판아이디B|게시판아이디C|",$bo_table)) age_alert(19,'down');

공부하면서 알아냈습니다. 특정게시판에만 접근제한하실경우에 적용하시면 됩니다.
global $bo_table 뒤에 세미콜론을 붙여야 에러가 안납니다

global $bo_table;
컥.. 죄송합니다. 수정했습니다;;
수정된 팁 너무나 좋군요 사실 홈페이지에 성인들을 위한 갤러리를 만들고 싶었거든요 레아디존 사진을 올리고
싶었는데 노출이 좀 있어서 망설였는데 덕분에 방금전가지 업로드했습니다.. 740장을 올리는 노가다를..; 이제 좀 쉬어야지요 ㅎㅎ
특정게시물일때만 작동할 수도 있도록 수정되었습니다.
substr(date('Ymd'),0,4)

이부분을

date('Y")

이런식으로 하면 더 간단할듯 싶네요..^^
네 그렇네요;; 감사합니다.
잘쓰겠습니다 ^^
굿 아이디어! 감사합니다
if ($ud == "down" && $oa < $age)

대신

if ($ud == "down" && intval( $oa) < intval( $age))

이 더 정확하겠네요.
좋은 팁 감사합니다
꼭 이용해야징~!
문제점이 있는것 같네요
생일만 가지고 체크를 하다보니
예로 2006년 01월 01일 태어난 아이의 경우
주민등록번호의 특성(?)상 성인으로 인증이 되네요
예) 1906년 01월01일 > 060101-1xxxxxx
2006년 01월01일 > 060101-3xxxxxx
view.skin.php 또는 list.skin.php 파일이 어디 디렉토리에 있나요?

아니면 메모장으로 만들어서 해야 되는 건가요?

게시글 목록

번호 제목
2604
2588
2587
2572
2565
2561
2527
2515
2501
2497
2487
2484
2481
2479
2463
2462
2433
2396
2393
2381