게시판 글쓰기시 핸드폰 인증된 회원만 가능하게 하기 > 그누4 팁자료실

매출이 오르면 내리는 수수료! 지금 수수료센터에서 전자결제(PG)수수료 비교견적 신청해 보세요!

그누4 팁자료실

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

게시판 글쓰기시 핸드폰 인증된 회원만 가능하게 하기 정보

게시판 글쓰기시 핸드폰 인증된 회원만 가능하게 하기

첨부파일

icode.sms.lib.php (3.9K) 412회 다운로드 2007-04-19 17:08:47

본문

아이코드에 선결제가 되어 있는 분들만 사용하십시오.



=============================================================



skin 디렉토리의 register_form.skin.php 를



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

// 토크 생성
$token = md5(uniqid(rand(), true));
set_session("ss_token", $token);
?>

... 중략 ...

<? if ($config[cf_use_hp]) { ?>
<TR bgcolor="#FFFFFF">
    <TD class=m_title>핸드폰번호</TD>
    <TD class='m_padding lh'>
        <?
        if ($member[mb_is_write]) {
            echo "<span class='small' style='color:#ff3300;'>$member[mb_is_write] 에 인증하였습니다.</span><br>";
            echo "<input type='hidden' name='mb_hp_old' value='$member[mb_hp]'>";
        }
        ?>
        <input class=m_text type=text name='mb_hp' size=21 maxlength=20 <?=$config[cf_req_hp]?'required':'';?> itemname='핸드폰번호' value='<?=$member[mb_hp]?>'>
        <input type=button value='인증번호 전송' class='small' onclick="hp_certify(this.form);">
        &nbsp; 인증번호 : <input class=m_text type=text name='mb_hp_certify' size=6 maxlength=6> 6자리 숫자<br>
        <span class=small style='color:blue;'>
            핸드폰 번호 인증을 하셔야 게시판에 글을 쓰실 수 있습니다.<br>
            핸드폰으로 전송된 인증번호를 입력하신 후 회원정보를 수정(확인 버튼)하시기 바랍니다.<br>
        </span>
        <script>
        function hp_certify(f) {
            var pattern = /^01[0-9][-]{0,1}[0-9]{3,4}[-]{0,1}[0-9]{4}$/;
            if(!pattern.test(f.mb_hp.value)){
                alert("핸드폰 번호가 입력되지 않았거나 번호가 틀립니다.\n\n핸드폰 번호를 *** 개인정보보호를 위한 휴대폰번호 노출방지 *** 또는 *** 개인정보보호를 위한 휴대폰번호 노출방지 *** 과 같이 입력해 주십시오.");
                f.mb_hp.select();
                f.mb_hp.focus();
                return;
            }

            win_open("<?=$member_skin_path?>/hp_certify.php?hp="+f.mb_hp.value+"&token=<?=$token?>", "hiddenframe");
        }
        </script>
    </TD>
</TR>
<? } ?>

... 생략 ...



와 같이 수정합니다.



=============================================================



해당 디렉토리에 hp_certify.php 를 아래 코드로 넣습니다.



<?
$g4_path = "../../..";
include_once($g4_path."/common.php");

// 세션에 저장된 토큰과 폼값으로 넘어온 토큰을 비교
if ($_GET["token"] && get_session("ss_token") == $_GET["token"]) {
    set_session("ss_token", ""); // 맞으면 세션을 지워 다시 입력폼을 통해서 들어오도록 한다.
} else {
    alert_close("인증번호 발송시 오류가 발생하였습니다.");
    exit;
}

$default['de_icode_server_ip'] = "211.172.232.124";
$default['de_icode_id'] = "아이코드 회원아이디";
$default['de_icode_pw'] = "아이코드 패스워드";
$default['de_icode_server_port'] = "7295";
$default['de_sms_hp'] = "보내는 사람 전화번호";

// SMS BEGIN --------------------------------------------------------
$receive_number = preg_replace("/[^0-9]/", "", $hp); // 수신자번호
$send_number = preg_replace("/[^0-9]/", "", $default['de_sms_hp']); // 발신자번호

$certify_number = rand(100000, 999999);

// 생성된 인증번호를 세션에 저장함
// form 에서 넘어온 인증번호와 비교하여 같으면 글쓰기 허용함
set_session("ss_hp_certify_number", $certify_number);

$sms_contents = "";
$sms_contents .= $certify_number;
$sms_contents .= "\n\n인증번호 입니다.";

if ($receive_number) {
    include_once("$g4[path]/lib/icode.sms.lib.php");
    $SMS = new SMS; // SMS 연결
    $SMS->SMS_con($default['de_icode_server_ip'], $default['de_icode_id'], $default['de_icode_pw'], $default['de_icode_server_port']);
    $SMS->Add($receive_number, $send_number, $default['de_icode_id'], stripslashes($sms_contents), "");
    $SMS->Send();
}
// SMS END  --------------------------------------------------------

alert_close("인증번호를 전송하였습니다. 인증번호를 확인 후 입력하여 주십시오.");
?>



=============================================================



bbs/write.php 를 아래와 같이 수정합니다.

@include_once ("$g4[path]/skin/board/write.head.skin.php"); // 이줄 추가
@include_once ("$board_skin_path/write.head.skin.php");



=============================================================



skin/board/write.head.skin.php 의 코드를 아래와 같이 작성합니다.

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

if (trim($member[mb_is_write]) == "") {
    alert("핸드폰번호 인증을 받은 회원만 글쓰기가 가능합니다.\\n\\n회원정보 수정에서 핸드폰번호 인증을 받으시기 바랍니다.\\n\\n음란 게시물을 막기 위한 방편이오니 이점 양해 바랍니다.");
}
?>



=============================================================



이 코드와 관련된 개인적인 질문은 받지 않습니다.
추천
3

댓글 15개

빠진 내용이 있어 코멘트로 남깁니다.



register_update.skin.php 을 아래의 코드로 작성해 주십시오.



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

// 핸드폰 번호와 인증번호가 같이 넘어 왔다면
if ($mb_hp && $mb_hp_certify) {

    $mb_is_write = "";
   
    // 인증번호가 같다면
    if (get_session("ss_hp_certify_number") == $mb_hp_certify) {
        $mb_is_write = $g4['time_ymdhis']; // 현재시간
    }

    sql_query(" update $g4[member_table] set mb_is_write = '$mb_is_write' where mb_id = '$mb_id' ");

} else if ($mb_hp_old && $mb_hp != $mb_hp_old) {
    sql_query(" update $g4[member_table] set mb_is_write = '' where mb_id = '$mb_id' ");
}
?>
아니 그럼..관리자는 어디서 인증을 받아야합니까?
관리자도 받으라하는데...
관리자는 인증을 안받게 해야한다거나..뭐 그런소스가 있어야할텐데요..
write.head.skin
관리자 패쑤하기
<?
if (!defined("_GNUBOARD_")) exit; // 개별 페이지 접근 불가
if (!$is_admin) {
if (trim($member[mb_is_write]) == "") {
    alert("핸드폰번호 인증을 받은 회원만 글쓰기가 가능합니다.\\n\\n회원정보 수정에서 핸드폰번호 인증을 받으시기 바랍니다.\\n\\n음란 게시물을 막기 위한 방편이오니 이점 양해 바랍니다.");
}
}
?>
이것을 제대로 구현해봤습니다만..핸드폰인증번호를 잘못입력해도 인증이 되게 넘어가 버리네요..어디 부분을 수정해야 하는건가요?
인증번호 아무거나 6자리 입력하여 그냥 회원가입되는현상은

회원가입은 되었으나 인증번호 승인된 회원이 아니므로

게시판에 글을 쓸수 없습니다.

리자님이 올려놓으신글 잘 보시면 알겠지만

휴대폰인증된 회원만 게시판 글쓸수 있는 방법을 설명하신거였거든요
전체 45 |RSS
그누4 팁자료실 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT