captcha 적용중
This commit is contained in:
@ -1,6 +1,6 @@
|
||||
<?
|
||||
include_once('./_common.php');
|
||||
include_once($g4['path'].'/plugin/captcha/captcha.lib.php');
|
||||
if ($captcha->lib) include_once($captcha->lib);
|
||||
|
||||
// 불법접근을 막도록 토큰생성
|
||||
$token = md5(uniqid(rand(), true));
|
||||
|
||||
@ -15,8 +15,8 @@ if ($w == 'u' && $is_admin == 'super') {
|
||||
alert('데모 화면에서는 하실(보실) 수 없는 작업입니다.');
|
||||
}
|
||||
|
||||
if (!chk_tcaptcha("user_answer")) {
|
||||
alert("정상적인 접근이 아닌것 같습니다.");
|
||||
if (!chk_captcha("wr_key")) {
|
||||
alert("자동등록방지 코드에 오류가 있습니다.");
|
||||
}
|
||||
|
||||
$mb_id = trim(strip_tags(mysql_escape_string($_POST[mb_id])));
|
||||
|
||||
@ -1,12 +1,14 @@
|
||||
<?
|
||||
include_once('./_common.php');
|
||||
|
||||
$mb = get_member($_SESSION[ss_mb_reg]);
|
||||
if (isset($_SESSION['ss_mb_reg']))
|
||||
$mb = get_member($_SESSION['ss_mb_reg']);
|
||||
|
||||
// 회원정보가 없다면 초기 페이지로 이동
|
||||
if (!$mb[mb_id])
|
||||
if (!$mb['mb_id'])
|
||||
goto_url($g4['path']);
|
||||
|
||||
$member_skin_path = $g4['path'].'/skin/member/'.$config[cf_member_skin];
|
||||
$member_skin_path = $g4['path'].'/skin/member/'.$config['cf_member_skin'];
|
||||
|
||||
$g4['title'] = '회원가입결과';
|
||||
include_once('./_head.php');
|
||||
|
||||
8
extend/captcha.extend.php
Normal file
8
extend/captcha.extend.php
Normal file
@ -0,0 +1,8 @@
|
||||
<?
|
||||
if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가
|
||||
|
||||
$captcha = (object)array(
|
||||
'lib' => $g4['path']."/plugin/captcha/captcha.lib.php",
|
||||
'js' => $g4['path']."/plugin/captcha/captcha.js"
|
||||
);
|
||||
?>
|
||||
@ -1,8 +0,0 @@
|
||||
<?
|
||||
if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가
|
||||
|
||||
$captcha = (object)array(
|
||||
'lib' => $g4['path']."/plugin/tcaptcha/tcaptcha.lib.php",
|
||||
'js' => $g4['path']."/plugin/tcaptcha/tcaptcha.js"
|
||||
);
|
||||
?>
|
||||
14
js/wrest.js
14
js/wrest.js
@ -13,9 +13,7 @@ function wrestItemname(fld)
|
||||
function wrestTrim(fld)
|
||||
{
|
||||
var pattern = /(^\s+)|(\s+$)/g; // \s 공백 문자
|
||||
//(/^\s+|\s+$/g,"");
|
||||
var str = fld.value.replace(pattern, "");
|
||||
return str;
|
||||
return fld.value.replace(pattern, "");
|
||||
}
|
||||
|
||||
// 필수 입력 검사
|
||||
@ -60,7 +58,7 @@ function wrestEmail(fld)
|
||||
}
|
||||
}
|
||||
|
||||
// 한글인지 검사 (자음, 모음만 있는 한글은 불가)
|
||||
// 한글인지 검사 (자음, 모음 조합된 한글만 가능)
|
||||
function wrestHangul(fld)
|
||||
{
|
||||
if (!wrestTrim(fld)) return;
|
||||
@ -69,7 +67,7 @@ function wrestHangul(fld)
|
||||
|
||||
if (pattern.test(fld.value)) {
|
||||
if (wrestFld == null) {
|
||||
wrestMsg = wrestItemname(fld) + ' : 한글이 아닙니다. (자음, 모음만 있는 한글은 처리하지 않습니다.)\n';
|
||||
wrestMsg = wrestItemname(fld) + ' : 한글이 아닙니다. (자음, 모음 조합된 한글만 가능)\n';
|
||||
wrestFld = fld;
|
||||
}
|
||||
}
|
||||
@ -186,7 +184,7 @@ function wrestMinLength(fld, css)
|
||||
{
|
||||
if (!wrestTrim(fld)) return;
|
||||
|
||||
var str = css.split('='); // minlength=?? <-- str[1]
|
||||
var str = css.split('_'); // minlength_?? <-- str[1]
|
||||
|
||||
if (wrestFld == null) {
|
||||
if (fld.value.length < parseInt(str[1])) {
|
||||
@ -283,8 +281,8 @@ function wrestSubmit()
|
||||
case "telnum" : wrestTelNum(el); break; // 김선용 2006.3 - 전화번호 형식 검사
|
||||
case "imgext" : wrestImgExt(el); break;
|
||||
default :
|
||||
// css 가 minlength= 로 시작한다면 = 뒤의 숫자는 최소길이값
|
||||
if (/^minlength\=/.test(css)) {
|
||||
// css 가 minlength_ 로 시작한다면 _ 뒤의 숫자는 최소길이값
|
||||
if (/^minlength\_/.test(css)) {
|
||||
wrestMinLength(el, css); break;
|
||||
} else if (/^extension\=/.test(css)) {
|
||||
wrestExtension(el, css); break;
|
||||
|
||||
@ -1597,9 +1597,9 @@ function check_mb_nick($reg_mb_nick)
|
||||
|
||||
// 별명은 한글, 영문, 숫자만 가능
|
||||
if (!check_string($reg_mb_nick, _G4_HANGUL_ + _G4_ALPHABETIC_ + _G4_NUMERIC_)) {
|
||||
return "공백없이 한글, 영문, 숫자만 입력 가능합니다.";
|
||||
return "별명은 공백없이 한글, 영문, 숫자만 입력 가능합니다.";
|
||||
} else if (strlen($reg_mb_nick) < 4) {
|
||||
return "한글 2글자, 영문 4글자 이상 입력 가능합니다.";
|
||||
return "별명은 한글 2글자, 영문 4글자 이상 입력 가능합니다.";
|
||||
} else {
|
||||
$row = sql_fetch(" select count(*) as cnt from {$g4['member_table']} where mb_nick = '$reg_mb_nick' ");
|
||||
if ($row['cnt']) {
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
function chk_captcha(input_key)
|
||||
function check_captcha(input_key)
|
||||
{
|
||||
if (typeof(input_key) != "undefined") {
|
||||
var captcha_result = false;
|
||||
@ -21,58 +21,16 @@ function chk_captcha(input_key)
|
||||
return true;
|
||||
}
|
||||
|
||||
function l_PlaySound(url, placeholderId) {
|
||||
if (document.getElementById) {
|
||||
var soundUrl = url;
|
||||
var placeholder = document.getElementById(placeholderId);
|
||||
|
||||
placeholder.innerHTML = "";
|
||||
|
||||
document.body.style.cursor = 'wait';
|
||||
var html5SoundPlayed = false;
|
||||
var browserCompatibilityCheck = document.createElement('audio');
|
||||
if (!!(browserCompatibilityCheck.canPlayType) &&
|
||||
!!(browserCompatibilityCheck.canPlayType("audio/wav")) &&
|
||||
!l_DetectFirefox3()) {
|
||||
sound = new Audio(soundUrl);
|
||||
sound.id = 'LBD_CaptchaSoundAudio';
|
||||
sound.autoplay = true;
|
||||
sound.controls = false;
|
||||
sound.autobuffer = false;
|
||||
sound.loop = false;
|
||||
|
||||
placeholder.appendChild(sound);
|
||||
html5SoundPlayed = true;
|
||||
}
|
||||
|
||||
if (!html5SoundPlayed) {
|
||||
var objectSrc = "<object id='LBD_CaptchaSoundObject' classid='clsid:22D6F312-B0F6-11D0-94AB-0080C74C7E95' height='0' width='0' style='width:0; height:0;'><param name='AutoStart' value='1' /><param name='Volume' value='0' /><param name='PlayCount' value='1' /><param name='FileName' value='" + soundUrl + "' /><embed id='LBD_CaptchaSoundEmbed' src='" + soundUrl + "' autoplay='true' hidden='true' volume='100' type='audio/x-wav' style='display:inline;' /></object>";
|
||||
|
||||
placeholder.innerHTML = objectSrc;
|
||||
}
|
||||
|
||||
document.body.style.cursor = 'default';
|
||||
}
|
||||
}
|
||||
|
||||
function l_DetectFirefox3() {
|
||||
var detected = false;
|
||||
if (navigator && navigator.userAgent) {
|
||||
var matches = navigator.userAgent.match(/(Firefox)\/(3\.6\.[^;\+,\/\s]+)/);
|
||||
if (matches) {
|
||||
detected = true;
|
||||
}
|
||||
}
|
||||
return detected;
|
||||
}
|
||||
|
||||
$(function() {
|
||||
$("#captcha").click(function() {
|
||||
$("#captcha").click(function(e) {
|
||||
this.setAttribute("src", g4_path+"/plugin/captcha/run.php?t="+(new Date).getTime());
|
||||
//$("#captcha_key").focus();//이미지 새로고침 후 입력박스에 포커스 : 지운아빠 2012-07-13
|
||||
//캡챠 클릭 시에 포커스 줘야 하는데 페이지 새로 고침되면 포커스를 줘서 주석처리 : 지운아빠 2012-08-03
|
||||
var keycode = (e.keyCode ? e.keyCode : e.which);
|
||||
// 첫 실행에서는 포커스를 주지 않음
|
||||
if (typeof(keycode) != "undefined") {
|
||||
$("#captcha_key").focus();//이미지 새로고침 후 입력박스에 포커스 : 지운아빠 2012-07-13
|
||||
}
|
||||
})
|
||||
.css("cursor", "pointer")
|
||||
.css("cursor", "pointer");
|
||||
.trigger("click");
|
||||
|
||||
$("#captcha_wav").click(function(){
|
||||
|
||||
@ -80,10 +80,6 @@ class captcha
|
||||
|
||||
// The text to draw
|
||||
$captcha_key = $this->get_captcha_key();
|
||||
/*
|
||||
$_SESSION['ss_captcha_key'] = $captcha_key;
|
||||
$_SESSION['ss_captcha_cnt'] = 0;
|
||||
*/
|
||||
|
||||
set_session('ss_captcha_key', $captcha_key);
|
||||
set_session('ss_captcha_cnt', 0);
|
||||
|
||||
@ -14,7 +14,6 @@ var member_skin_path = "<?=$member_skin_path?>";
|
||||
<input type="hidden" id="mb_id_enabled" name="mb_id_enabled" value="">
|
||||
<input type="hidden" id="mb_nick_enabled" name="mb_nick_enabled" value="">
|
||||
<input type="hidden" id="mb_email_enabled" name="mb_email_enabled" value="">
|
||||
<!-- <input type="hidden" name="token" value="<?=$token?>"> -->
|
||||
<? if (isset($member['mb_sex'])) { ?><input type="hidden" name="mb_sex" value="<?=$member['mb_sex']?>"><? } ?>
|
||||
<? if (isset($member['mb_nick_date']) && $member['mb_nick_date'] <= date("Y-m-d", $g4['server_time'] - ($config['cf_nick_modify'] * 86400))) { // 별명수정일이 지나지 않았다면 ?>
|
||||
<input type="hidden" name="mb_nick_default" value="<?=$member['mb_nick']?>">
|
||||
@ -26,18 +25,18 @@ var member_skin_path = "<?=$member_skin_path?>";
|
||||
<tr>
|
||||
<th scope="row"><label for="reg_mb_id">아이디</label></th>
|
||||
<td>
|
||||
<input type="text" id="reg_mb_id" name="mb_id" value="<?=$member['mb_id']?>" maxlength="20" <? if ($w=='u') { echo "readonly style='background-color:#dddddd;'"; } ?> <? if ($w=='') { echo 'required="required"'; } ?> title="회원아이디">
|
||||
<input type="text" id="reg_mb_id" name="mb_id" class="minlength_3" value="<?=$member['mb_id']?>" maxlength="20" <? if ($w=='u') { echo "readonly style='background-color:#dddddd;'"; } ?> <? if ($w=='') { echo 'required="required"'; } ?> title="회원아이디">
|
||||
<span id="msg_mb_id"></span>
|
||||
<span>영문자, 숫자, _ 만 입력 가능. 최소 3자이상 입력하세요.</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row"><label for="mb_password">패스워드</label></th>
|
||||
<td><input type="password" id="reg_mb_password" name="mb_password" maxlength="20" <?=($w=='')?'required="required"':'';?> title="패스워드"></td>
|
||||
<td><input type="password" id="reg_mb_password" name="mb_password" class="minlength_3" <?=($w=='')?'required="required"':'';?> maxlength="20" title="패스워드"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row"><label for="reg_mb_password_re">패스워드 확인</label></th>
|
||||
<td><input type="password" id="reg_mb_password_re" name="mb_password_re" maxlength="20" <?=($w=='')?'required="required"':'';?> title="패스워드 확인"></td>
|
||||
<td><input type="password" id="reg_mb_password_re" name="mb_password_re" class="minlength_3" <?=($w=='')?'required="required"':'';?> maxlength="20" title="패스워드 확인"></td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
@ -46,7 +45,7 @@ var member_skin_path = "<?=$member_skin_path?>";
|
||||
<tr>
|
||||
<th scope="row"><label for="reg_mb_name">이름</label></th>
|
||||
<td>
|
||||
<input id="reg_mb_name" name="mb_name" value="<?=$member['mb_name']?>" <?=$member['mb_name']?"readonly2":"";?><?echo($w==''?'required="required"':'');?> title="이름">
|
||||
<input type="text" id="reg_mb_name" name="mb_name" class="hangul" value="<?=$member['mb_name']?>" <?=$member['mb_name']?"readonly2":"";?><?echo($w==''?'required="required"':'');?> title="이름">
|
||||
<? if ($w=='') { echo "(공백없이 한글만 입력 가능)"; } ?>
|
||||
</td>
|
||||
</tr>
|
||||
@ -55,7 +54,7 @@ var member_skin_path = "<?=$member_skin_path?>";
|
||||
<th scope="row"><label for="reg_mb_nick">별명</label></th>
|
||||
<td>
|
||||
<input type="hidden" name="mb_nick_default" value="<?=isset($member['mb_nick'])?$member['mb_nick']:'';?>">
|
||||
<input type="text" id="reg_mb_nick" name="mb_nick" maxlength="20" value="<?=isset($member['mb_nick'])?$member['mb_nick']:'';?>"<?echo($w==''?'required="required"':'');?> title="별명">
|
||||
<input type="text" id="reg_mb_nick" name="mb_nick" value="<?=isset($member['mb_nick'])?$member['mb_nick']:'';?>" maxlength="20" <?echo($w==''?'required="required"':'');?> title="별명">
|
||||
<span id="msg_mb_nick"></span>
|
||||
<br>공백없이 한글,영문,숫자만 입력 가능 (한글2자, 영문4자 이상)
|
||||
<br>별명을 바꾸시면 앞으로 <?=(int)$config['cf_nick_modify']?>일 이내에는 변경 할 수 없습니다.
|
||||
@ -67,7 +66,7 @@ var member_skin_path = "<?=$member_skin_path?>";
|
||||
<th scope="row"><label for="reg_mb_email">E-mail</label></th>
|
||||
<td>
|
||||
<input type="hidden" name="old_email" value="<?=$member['mb_email']?>">
|
||||
<input type="text" id="reg_mb_email" name="mb_email" maxlength="100" value='<?=isset($member['mb_email'])?$member['mb_email']:'';?>'>
|
||||
<input type="text" id="reg_mb_email" name="mb_email" class="email" value='<?=isset($member['mb_email'])?$member['mb_email']:'';?>' maxlength="100" required="required" title="E-mail">
|
||||
<span id="msg_mb_email"></span>
|
||||
<? if ($config['cf_use_email_certify']) { ?>
|
||||
<? if ($w=='') { echo "<br>e-mail 로 발송된 내용을 확인한 후 인증하셔야 회원가입이 완료됩니다."; } ?>
|
||||
@ -179,25 +178,23 @@ var member_skin_path = "<?=$member_skin_path?>";
|
||||
<? } ?>
|
||||
</table>
|
||||
|
||||
<?=get_captcha('wr_key', 1);?>
|
||||
<?=get_captcha("wr_key", 1);?>
|
||||
|
||||
<div class="btn_confirm">
|
||||
<input type="submit" value="회원가입" accesskey="s">
|
||||
</div>
|
||||
</form>
|
||||
|
||||
<script src="<?="$g4[path]/js/jquery.kcaptcha.js"?>"></script>
|
||||
<script>
|
||||
$(function(){
|
||||
/*
|
||||
$("#reg_mb_id").blur(function(){
|
||||
var msg = reg_mb_id_check();
|
||||
//$("#msg_mb_id").html(msg).css('color', 'red');
|
||||
if (msg) alert(msg);
|
||||
});
|
||||
|
||||
$("#reg_mb_nick").blur(function(){
|
||||
var msg = reg_mb_nick_check();
|
||||
//$("#msg_mb_nick").html(msg).css('color', 'red');
|
||||
if (msg) alert(msg);
|
||||
});
|
||||
|
||||
@ -205,6 +202,7 @@ $(function(){
|
||||
var msg = reg_mb_email_check();
|
||||
if (msg) alert(msg);
|
||||
});
|
||||
*/
|
||||
});
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user