나이로 사용 제한하기 - 회원전용(수정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;
}
//== 소스 삽입 끝 ==
?>
=====================================================
↓작업끝요..
예를 들면, 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
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("성인이시네요");
?>
그냥 이런식으로 원하는 부분에 넣고 쓰시는거랑 다를께 없습니다.;;
<?
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 파일에 넣으면 전체 게시판에 적용되겠네요...
age_alert(19,'down'); //★나이로 사용 제한하기 - 회원전용
이것을 스킨파일에 넣지 않고,
bbs/view.php 또는bbs/ list.php 파일에 넣으면 전체 게시판에 적용되겠네요...
19세 인증 관련 팁 게시물에 이어서 작업 해야되는거예요??

스킨에 위의 팁만 적용했는데 잘 되네요.....^^
단, 비회원은 체크가 안되니까 게시판의 사용권한을 회원으로 하셔야 합니다..
단, 비회원은 체크가 안되니까 게시판의 사용권한을 회원으로 하셔야 합니다..
게시판 지정해서 적용하는 법
if (strpos("|게시판아이디A|게시판아이디B|게시판아이디C|",$bo_table)) age_alert(19,'down');
공부하면서 알아냈습니다. 특정게시판에만 접근제한하실경우에 적용하시면 됩니다.
if (strpos("|게시판아이디A|게시판아이디B|게시판아이디C|",$bo_table)) age_alert(19,'down');
공부하면서 알아냈습니다. 특정게시판에만 접근제한하실경우에 적용하시면 됩니다.
global $bo_table 뒤에 세미콜론을 붙여야 에러가 안납니다
global $bo_table;
global $bo_table;
컥.. 죄송합니다. 수정했습니다;;
수정된 팁 너무나 좋군요 사실 홈페이지에 성인들을 위한 갤러리를 만들고 싶었거든요 레아디존 사진을 올리고
싶었는데 노출이 좀 있어서 망설였는데 덕분에 방금전가지 업로드했습니다.. 740장을 올리는 노가다를..; 이제 좀 쉬어야지요 ㅎㅎ
싶었는데 노출이 좀 있어서 망설였는데 덕분에 방금전가지 업로드했습니다.. 740장을 올리는 노가다를..; 이제 좀 쉬어야지요 ㅎㅎ
특정게시물일때만 작동할 수도 있도록 수정되었습니다.

substr(date('Ymd'),0,4)
이부분을
date('Y")
이런식으로 하면 더 간단할듯 싶네요..^^
이부분을
date('Y")
이런식으로 하면 더 간단할듯 싶네요..^^
네 그렇네요;; 감사합니다.
^^
잘쓰겠습니다 ^^
굿 아이디어! 감사합니다
if ($ud == "down" && $oa < $age)
대신
if ($ud == "down" && intval( $oa) < intval( $age))
이 더 정확하겠네요.
대신
if ($ud == "down" && intval( $oa) < intval( $age))
이 더 정확하겠네요.
좋은 팁 감사합니다
^^

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