게시판 글쓰기시 핸드폰 인증된 회원만 가능하게 하기
아이코드에 선결제가 되어 있는 분들만 사용하십시오.
=============================================================
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);">
인증번호 : <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핸드폰 번호를 010-123-4567 또는 01012345678 과 같이 입력해 주십시오.");
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음란 게시물을 막기 위한 방편이오니 이점 양해 바랍니다.");
}
?>
=============================================================
이 코드와 관련된 개인적인 질문은 받지 않습니다.
=============================================================
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);">
인증번호 : <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핸드폰 번호를 010-123-4567 또는 01012345678 과 같이 입력해 주십시오.");
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음란 게시물을 막기 위한 방편이오니 이점 양해 바랍니다.");
}
?>
=============================================================
이 코드와 관련된 개인적인 질문은 받지 않습니다.
댓글 15개
18년 전
빠진 내용이 있어 코멘트로 남깁니다.
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' ");
}
?>
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' ");
}
?>
18년 전
퍼가요~
PhotoFly
18년 전
감사합니다....^^
18년 전
오~ 리자님 파이팅~!
18년 전
신나는 날입니다.
감사합니다.
감사합니다.
solbianca
17년 전
고맙습니다^^/
저시키알바
17년 전
감사~!
17년 전
아니 그럼..관리자는 어디서 인증을 받아야합니까?
관리자도 받으라하는데...
관리자는 인증을 안받게 해야한다거나..뭐 그런소스가 있어야할텐데요..
관리자도 받으라하는데...
관리자는 인증을 안받게 해야한다거나..뭐 그런소스가 있어야할텐데요..
13년 전
write.head.skin
관리자 패쑤하기
<?
if (!defined("_GNUBOARD_")) exit; // 개별 페이지 접근 불가
if (!$is_admin) {
if (trim($member[mb_is_write]) == "") {
alert("핸드폰번호 인증을 받은 회원만 글쓰기가 가능합니다.\\n\\n회원정보 수정에서 핸드폰번호 인증을 받으시기 바랍니다.\\n\\n음란 게시물을 막기 위한 방편이오니 이점 양해 바랍니다.");
}
}
?>
관리자 패쑤하기
<?
if (!defined("_GNUBOARD_")) exit; // 개별 페이지 접근 불가
if (!$is_admin) {
if (trim($member[mb_is_write]) == "") {
alert("핸드폰번호 인증을 받은 회원만 글쓰기가 가능합니다.\\n\\n회원정보 수정에서 핸드폰번호 인증을 받으시기 바랍니다.\\n\\n음란 게시물을 막기 위한 방편이오니 이점 양해 바랍니다.");
}
}
?>
14년 전
핸드폰인증
14년 전
게시판 글쓰기시 핸드폰 인증된 회원만 가능하게 하기
14년 전
이것을 제대로 구현해봤습니다만..핸드폰인증번호를 잘못입력해도 인증이 되게 넘어가 버리네요..어디 부분을 수정해야 하는건가요?
13년 전
인증번호 아무거나 6자리 입력하여 그냥 회원가입되는현상은
회원가입은 되었으나 인증번호 승인된 회원이 아니므로
게시판에 글을 쓸수 없습니다.
리자님이 올려놓으신글 잘 보시면 알겠지만
휴대폰인증된 회원만 게시판 글쓸수 있는 방법을 설명하신거였거든요
회원가입은 되었으나 인증번호 승인된 회원이 아니므로
게시판에 글을 쓸수 없습니다.
리자님이 올려놓으신글 잘 보시면 알겠지만
휴대폰인증된 회원만 게시판 글쓸수 있는 방법을 설명하신거였거든요
5년 전
이게 그누5에도서 되나요?
5년 전
감사합니다.
게시판 목록
그누4 팁자료실
그누보드4와 관련된 팁을 여러분들과 함께 공유하세요.
나누면 즐거움이 커집니다.
나누면 즐거움이 커집니다.
| 번호 | 제목 | 글쓴이 | 날짜 | 조회 |
|---|---|---|---|---|
| 3309 | 3년 전 | 1802 | ||
| 3308 | 11년 전 | 2091 | ||
| 3307 |
uPAmJ903
|
6년 전 | 4750 | |
| 3306 |
바른사나이
|
6년 전 | 3273 | |
| 3305 | 6년 전 | 12305 | ||
| 3304 | 7년 전 | 3702 | ||
| 3303 | 7년 전 | 3742 | ||
| 3302 |
지리산초보
|
7년 전 | 13596 | |
| 3301 |
sozet
|
8년 전 | 4901 | |
| 3300 |
sozet
|
8년 전 | 5971 | |
| 3299 |
sozet
|
8년 전 | 10862 | |
| 3298 | 8년 전 | 4015 | ||
| 3297 |
또치하우스
|
8년 전 | 4442 | |
| 3296 | 8년 전 | 11969 | ||
| 3295 |
또치하우스
|
8년 전 | 14984 | |
| 3294 | 8년 전 | 6024 | ||
| 3293 | 8년 전 | 5587 | ||
| 3292 |
|
9년 전 | 5316 | |
| 3291 | 9년 전 | 13677 | ||
| 3290 | 9년 전 | 5050 |
댓글 작성
댓글을 작성하시려면 로그인이 필요합니다.
로그인하기