나이로 사용 제한하기 - 회원전용(수정3) > 그누4 팁자료실

그누4 팁자료실

그누보드4와 관련된 팁을 여러분들과 함께 공유하세요.
나누면 즐거움이 커집니다.

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

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

본문

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

예를 들면, 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;
}

//== 소스 삽입 끝 ==

?>
=====================================================
↓작업끝요..
추천
5
  • 복사

댓글 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("성인이시네요");
?>

그냥 이런식으로 원하는 부분에 넣고 쓰시는거랑 다를께 없습니다.;;
간단하고 좋은 팁 감사합니다...^^

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

공부하면서 알아냈습니다. 특정게시판에만 접근제한하실경우에 적용하시면 됩니다.
수정된 팁 너무나 좋군요 사실 홈페이지에 성인들을 위한 갤러리를 만들고 싶었거든요 레아디존 사진을 올리고
싶었는데 노출이 좀 있어서 망설였는데 덕분에 방금전가지 업로드했습니다.. 740장을 올리는 노가다를..; 이제 좀 쉬어야지요 ㅎㅎ
문제점이 있는것 같네요
생일만 가지고 체크를 하다보니
예로 2006년 01월 01일 태어난 아이의 경우
주민등록번호의 특성(?)상 성인으로 인증이 되네요
예) 1906년 01월01일 > 060101-1xxxxxx
    2006년 01월01일 > 060101-3xxxxxx
© SIRSOFT
현재 페이지 제일 처음으로