회원가입 notice 오류 해결 및 캡챠 iframe 처리

This commit is contained in:
gnuboard
2013-01-08 17:04:15 +09:00
parent 17a2f4b24b
commit 751a38a2ab
13 changed files with 196 additions and 293 deletions

View File

@ -1,5 +1,6 @@
<?
include_once('./_common.php');
include_once($g4['path'].'/lib/register.lib.php');
if ($captcha->lib) include_once($captcha->lib);
// 불법접근을 막도록 토큰생성
@ -112,6 +113,11 @@ else
$req_nick = !isset($member['mb_nick_date']) || (isset($member['mb_nick_date']) && $member['mb_nick_date'] <= date("Y-m-d", $g4['server_time'] - ($config['cf_nick_modify'] * 86400)));
$required = "";
$readonly = "";
if ($w == '') $required = "required";
else if ($w == 'u') $readonly = "readonly";
include_once($member_skin_path.'/register_form.skin.php');
include_once('./_tail.php');
?>

View File

@ -1,5 +1,6 @@
<?
include_once('./_common.php');
include_once($g4['path'].'/lib/register.lib.php');
include_once($g4['path'].'/lib/mailer.lib.php');
include_once($g4['path'].'/plugin/captcha/captcha.lib.php');
@ -16,108 +17,94 @@ if ($w == 'u' && $is_admin == 'super') {
}
if (!chk_captcha("wr_key")) {
alert("자동등록방지 코드에 오류가 있습니다.");
alert("자동등록방지 입력에 오류가 있습니다.");
}
$mb_id = trim(strip_tags(mysql_escape_string($_POST[mb_id])));
$mb_password = trim(mysql_escape_string($_POST[mb_password]));
$mb_name = trim(strip_tags(mysql_escape_string($_POST[mb_name])));
$mb_nick = trim(strip_tags(mysql_escape_string($_POST[mb_nick])));
$mb_email = trim(strip_tags(mysql_escape_string($_POST[mb_email])));
$mb_homepage = trim(strip_tags(mysql_escape_string($_POST[mb_homepage])));
$mb_id = escape_trim($_POST['mb_id']);
$mb_password = escape_trim($_POST['mb_password']);
$mb_name = escape_trim($_POST['mb_name']);
$mb_nick = escape_trim($_POST['mb_nick']);
$mb_email = escape_trim($_POST['mb_email']);
$mb_sex = isset($_POST['mb_sex']) ? escape_trim($_POST['mb_sex']) : "";
$mb_birth = isset($_POST['mb_birth']) ? escape_trim($_POST['mb_birth']) : "";
$mb_homepage = isset($_POST['mb_homepage']) ? escape_trim($_POST['mb_homepage']) : "";
$mb_tel = isset($_POST['mb_tel']) ? escape_trim($_POST['mb_tel']) : "";
$mb_hp = isset($_POST['mb_hp']) ? escape_trim($_POST['mb_hp']) : "";
$mb_zip1 = isset($_POST['mb_zip1']) ? escape_trim($_POST['mb_zip1']) : "";
$mb_zip2 = isset($_POST['mb_zip2']) ? escape_trim($_POST['mb_zip2']) : "";
$mb_addr1 = isset($_POST['mb_addr1']) ? escape_trim($_POST['mb_addr1']) : "";
$mb_addr2 = isset($_POST['mb_addr2']) ? escape_trim($_POST['mb_addr2']) : "";
$mb_signature = isset($_POST['mb_signature']) ? escape_trim($_POST['mb_signature']) : "";
$mb_profile = isset($_POST['mb_profile']) ? escape_trim($_POST['mb_profile']) : "";
$mb_recommend = isset($_POST['mb_recommend']) ? escape_trim($_POST['mb_recommend']) : "";
$mb_mailling = isset($_POST['mb_mailling']) ? escape_trim($_POST['mb_mailling']) : "";
$mb_sms = isset($_POST['mb_sms']) ? escape_trim($_POST['mb_sms']) : "";
$mb_1 = isset($_POST['mb_1']) ? escape_trim($_POST['mb_1']) : "";
$mb_2 = isset($_POST['mb_2']) ? escape_trim($_POST['mb_2']) : "";
$mb_3 = isset($_POST['mb_3']) ? escape_trim($_POST['mb_3']) : "";
$mb_4 = isset($_POST['mb_4']) ? escape_trim($_POST['mb_4']) : "";
$mb_5 = isset($_POST['mb_5']) ? escape_trim($_POST['mb_5']) : "";
$mb_6 = isset($_POST['mb_6']) ? escape_trim($_POST['mb_6']) : "";
$mb_7 = isset($_POST['mb_7']) ? escape_trim($_POST['mb_7']) : "";
$mb_8 = isset($_POST['mb_8']) ? escape_trim($_POST['mb_8']) : "";
$mb_9 = isset($_POST['mb_9']) ? escape_trim($_POST['mb_9']) : "";
$mb_10 = isset($_POST['mb_10']) ? escape_trim($_POST['mb_10']) : "";
if ($w == '' || $w == 'u')
{
if (!$mb_id) alert('회원아이디가 넘어오지 않았습니다.');
if ($w == '' && !$mb_password) alert('패스워드가 넘어오지 않았습니다.');
if (!$mb_name) alert('이름(실명)이 넘어오지 않았습니다.');
if (!$mb_nick) alert('별명이 넘어오지 않았습니다.');
if (!$mb_email) alert('E-mail 이 넘어오지 않았습니다.');
if ($w == '' || $w == 'u') {
if (preg_match("/[\,]?{$mb_id}/i", $config[cf_prohibit_id]))
alert(''.$mb_id.' 은(는) 예약어로 사용하실 수 없는 회원아이디입니다.');
if ($msg = empty_mb_id($mb_id)) alert($msg);
if (preg_match("/[\,]?{$mb_nick}/i", $config[cf_prohibit_id]))
alert(''.$mb_nick.' 은(는) 예약어로 사용하실 수 없는 별명입니다.');
if ($w == '' && !$mb_password)
alert('패스워드가 넘어오지 않았습니다.');
// 이름은 한글만 가능
if (!check_string($mb_name, _G4_HANGUL_))
alert('이름은 공백없이 한글만 입력 가능합니다.');
if ($msg = empty_mb_name($mb_id)) alert($msg);
if ($msg = empty_mb_nick($mb_nick)) alert($msg);
if ($msg = empty_mb_email($mb_email)) alert($msg);
if ($msg = reserve_mb_id($mb_id)) alert($msg);
if ($msg = reserve_mb_nick($mb_nick)) alert($msg);
if ($msg = valid_mb_name($mb_name)) alert($msg);
if ($msg = valid_mb_nick($mb_nick)) alert($msg);
// 별명은 한글, 영문, 숫자만 가능
if (!check_string($mb_nick, _G4_HANGUL_ + _G4_ALPHABETIC_ + _G4_NUMERIC_))
alert('별명은 공백없이 한글, 영문, 숫자만 입력 가능합니다.');
if ($w=='') {
if ($msg = exist_mb_id($mb_id)) alert($msg);
if ($w=='')
{
if (strtolower($mb_id) == strtolower($mb_recommend)) alert('본인을 추천할 수 없습니다.');
$sql = " select count(*) as cnt from {$g4[member_table]} where mb_nick = '{$mb_nick}' ";
$row = sql_fetch($sql);
if ($row[cnt])
alert(''.$mb_nick.' 은(는) 이미 다른분이 사용중인 별명이므로 사용이 불가합니다.');
$sql = " select count(*) as cnt from {$g4[member_table]} where mb_email = '{$mb_email}' ";
$row = sql_fetch($sql);
if ($row[cnt])
alert(''.$mb_email.' 은(는) 이미 다른분이 사용중인 E-mail이므로 사용이 불가합니다.');
// 주민번호 확인 체크시 가입하고 바로 뒤로가기 하면 동일 주민번호로 다시 가입되는 버그 때문에 (letsgolee 님 09.06.16)
if ($config[cf_use_jumin]) {
$row = sql_fetch(" select mb_name from {$g4[member_table]} where mb_jumin = '{$mb_jumin}' ");
if ($row[mb_name]) {
if ($row[mb_name] == $mb_name)
alert('이미 가입되어 있습니다.');
else
alert('다른 이름으로 같은 주민등록번호가 이미 가입되어 있습니다.'.PHP_EOL.PHP_EOL.'관리자에게 문의해 주십시오.');
}
if (strtolower($mb_id) == strtolower($mb_recommend)) {
alert('본인을 추천할 수 없습니다.');
}
}
else
{
} else {
// 자바스크립트로 정보변경이 가능한 버그 수정
// 별명수정일이 지나지 않았다면
if ($member[mb_nick_date] > date("Y-m-d", $g4[server_time] - ($config[cf_nick_modify] * 86400)))
$mb_nick = $member[mb_nick];
if ($member['mb_nick_date'] > date("Y-m-d", $g4['server_time'] - ($config['cf_nick_modify'] * 86400)))
$mb_nick = $member['mb_nick'];
// 회원정보의 메일을 이전 메일로 옮기고 아래에서 비교함
$old_email = $member[mb_email];
$sql = " select count(*) as cnt from {$g4[member_table]} where mb_nick = '{$mb_nick}' and mb_id <> '{$mb_id}' ";
$row = sql_fetch($sql);
if ($row[cnt])
alert(''.$mb_nick.' 은(는) 이미 다른분이 사용중인 별명이므로 사용이 불가합니다.');
$sql = " select count(*) as cnt from {$g4[member_table]} where mb_email = '{$mb_email}' and mb_id <> '{$mb_id}' ";
$row = sql_fetch($sql);
if ($row[cnt])
alert(''.$mb_email.' 은(는) 이미 다른분이 사용중인 E-mail이므로 사용이 불가합니다.');
$old_email = $member['mb_email'];
}
if ($msg = exist_mb_nick($mb_nick, $mb_id)) alert($msg);
if ($msg = exist_mb_email($mb_email, $mb_id)) alert($msg);
}
$mb_dir = $g4['path'].'/data/member/'.substr($mb_id,0,2);
// 아이콘 삭제
if ($del_mb_icon)
if (isset($_POST['del_mb_icon'])) {
@unlink($mb_dir.'/'.$mb_id.'.gif');
}
$msg = "";
// 아이콘 업로드
$mb_icon = '';
if (is_uploaded_file($_FILES[mb_icon][tmp_name]))
{
if (preg_match("/(\.gif)$/i", $_FILES[mb_icon][name]))
{
if (isset($_FILES['mb_icon']) && is_uploaded_file($_FILES['mb_icon']['tmp_name'])) {
if (preg_match("/(\.gif)$/i", $_FILES['mb_icon']['name'])) {
// 아이콘 용량이 설정값보다 이하만 업로드 가능
if ($_FILES[mb_icon][size] <= $config[cf_member_icon_size])
{
if ($_FILES['mb_icon']['size'] <= $config['cf_member_icon_size']) {
@mkdir($mb_dir, 0707);
@chmod($mb_dir, 0707);
$dest_path = $mb_dir.'/'.$mb_id.'.gif';
move_uploaded_file($_FILES[mb_icon][tmp_name], $dest_path);
move_uploaded_file($_FILES['mb_icon']['tmp_name'], $dest_path);
chmod($dest_path, 0606);
if (file_exists($dest_path))
{
if (file_exists($dest_path)) {
//=================================================================\
// 090714
// gif 파일에 악성코드를 심어 업로드 하는 경우를 방지
@ -128,14 +115,15 @@ if (is_uploaded_file($_FILES[mb_icon][tmp_name]))
@unlink($dest_path);
else
// 아이콘의 폭 또는 높이가 설정값 보다 크다면 이미 업로드 된 아이콘 삭제
if ($size[0] > $config[cf_member_icon_width] || $size[1] > $config[cf_member_icon_height])
if ($size[0] > $config['cf_member_icon_width'] || $size[1] > $config['cf_member_icon_height'])
@unlink($dest_path);
//=================================================================\
}
}
} else {
$msg .= $_FILES['mb_icon']['name'].'은(는) gif 파일이 아닙니다.';
}
else
$msg .= $_FILES[mb_icon][name].'은(는) gif 파일이 아닙니다.';
}
@ -143,23 +131,16 @@ if (is_uploaded_file($_FILES[mb_icon][tmp_name]))
$admin = get_admin('super');
if ($w == '')
{
$mb = get_member($mb_id);
if ($mb[mb_id])
alert('이미 가입한 아이디입니다.');
if ($w == '') {
$sql = " insert into {$g4[member_table]}
$sql = " insert into {$g4['member_table']}
set mb_id = '{$mb_id}',
mb_password = '".sql_password($mb_password)."',
mb_name = '{$mb_name}',
mb_jumin = '{$mb_jumin}',
mb_sex = '{$mb_sex}',
mb_birth = '{$mb_birth}',
mb_nick = '{$mb_nick}',
mb_nick_date = '{$g4[time_ymd]}',
mb_password_q = '{$mb_password_q}',
mb_password_a = '{$mb_password_a}',
mb_nick_date = '{$g4['time_ymd']}',
mb_email = '{$mb_email}',
mb_homepage = '{$mb_homepage}',
mb_tel = '{$mb_tel}',
@ -170,16 +151,16 @@ if ($w == '')
mb_addr2 = '{$mb_addr2}',
mb_signature = '{$mb_signature}',
mb_profile = '{$mb_profile}',
mb_today_login = '{$g4[time_ymdhis]}',
mb_datetime = '{$g4[time_ymdhis]}',
mb_ip = '{$_SERVER[REMOTE_ADDR]}',
mb_level = '{$config[cf_register_level]}',
mb_today_login = '{$g4['time_ymdhis']}',
mb_datetime = '{$g4['time_ymdhis']}',
mb_ip = '{$_SERVER['REMOTE_ADDR']}',
mb_level = '{$config['cf_register_level']}',
mb_recommend = '{$mb_recommend}',
mb_login_ip = '{$_SERVER[REMOTE_ADDR]}',
mb_login_ip = '{$_SERVER['REMOTE_ADDR']}',
mb_mailling = '{$mb_mailling}',
mb_sms = '{$mb_sms}',
mb_open = '{$mb_open}',
mb_open_date = '{$g4[time_ymd]}',
mb_open_date = '{$g4['time_ymd']}',
mb_1 = '{$mb_1}',
mb_2 = '{$mb_2}',
mb_3 = '{$mb_3}',
@ -191,36 +172,34 @@ if ($w == '')
mb_9 = '{$mb_9}',
mb_10 = '{$mb_10}' ";
// 이메일 인증을 사용하지 않는다면 이메일 인증시간을 바로 넣는다
if (!$config[cf_use_email_certify])
if (!$config['cf_use_email_certify'])
$sql .= " , mb_email_certify = '{$g4[time_ymdhis]}' ";
sql_query($sql);
// 회원가입 포인트 부여
insert_point($mb_id, $config[cf_register_point], '회원가입 축하', '{@member}', $mb_id, '회원가입');
insert_point($mb_id, $config['cf_register_point'], '회원가입 축하', '{@member}', $mb_id, '회원가입');
// 추천인에게 포인트 부여
if ($config[cf_use_recommend] && $mb_recommend)
insert_point($mb_recommend, $config[cf_recommend_point], '{$mb_id}의 추천인', '{@member}', $mb_recommend, '{$mb_id} 추천');
if ($config['cf_use_recommend'] && $mb_recommend)
insert_point($mb_recommend, $config['cf_recommend_point'], '{$mb_id}의 추천인', '{@member}', $mb_recommend, '{$mb_id} 추천');
// 회원님께 메일 발송
if ($config[cf_email_mb_member])
{
if ($config['cf_email_mb_member']) {
$subject = '회원가입을 축하드립니다.';
$mb_md5 = md5($mb_id.$mb_email.$g4[time_ymdhis]);
$certify_href = $g4[url].'/'.$g4[bbs].'/email_certify.php?mb_id='.$mb_id.'&amp;mb_md5='.$mb_md5;
$mb_md5 = md5($mb_id.$mb_email.$g4['time_ymdhis']);
$certify_href = $g4['url'].'/'.$g4['bbs'].'/email_certify.php?mb_id='.$mb_id.'&amp;mb_md5='.$mb_md5;
ob_start();
include_once ('./register_form_update_mail1.php');
$content = ob_get_contents();
ob_end_clean();
mailer($admin[mb_nick], $admin[mb_email], $mb_email, $subject, $content, 1);
mailer($admin['mb_nick'], $admin['mb_email'], $mb_email, $subject, $content, 1);
}
// 최고관리자님께 메일 발송
if ($config[cf_email_mb_super_admin])
{
if ($config['cf_email_mb_super_admin']) {
$subject = $mb_nick .' 님께서 회원으로 가입하셨습니다.';
ob_start();
@ -228,22 +207,22 @@ if ($w == '')
$content = ob_get_contents();
ob_end_clean();
mailer($mb_nick, $mb_email, $admin[mb_email], $subject, $content, 1);
mailer($mb_nick, $mb_email, $admin['mb_email'], $subject, $content, 1);
}
// 메일인증 사용하지 않는 경우에만 로그인
if (!$config[cf_use_email_certify])
if (!$config['cf_use_email_certify'])
set_session('ss_mb_id', $mb_id);
set_session('ss_mb_reg', $mb_id);
}
else if ($w == 'u')
{
if (!trim($_SESSION["ss_mb_id"]))
} else if ($w == 'u') {
if (!trim($_SESSION['ss_mb_id']))
alert('로그인 되어 있지 않습니다.');
if ($_SESSION["ss_mb_id"] != $_POST[mb_id])
alert('로그인된 정보와 수정하려는 정보가 틀리므로 수정할 수 없습니다.'.PHP_EOL.PHP_EOL.'만약 올바르지 않은 방법을 사용하신다면 바로 중지하여 주십시오.');
if ($_SESSION['ss_mb_id'] != $mb_id)
alert("로그인된 정보와 수정하려는 정보가 틀리므로 수정할 수 없습니다.\\n만약 올바르지 않은 방법을 사용하신다면 바로 중지하여 주십시오.");
$sql_password = "";
if ($mb_password)
@ -267,60 +246,57 @@ else if ($w == 'u')
// 이전 메일주소와 수정한 메일주소가 틀리다면 인증을 다시 해야하므로 값을 삭제
$sql_email_certify = '';
if ($old_email != $mb_email && $config[cf_use_email_certify])
if ($old_email != $mb_email && $config['cf_use_email_certify'])
$sql_email_certify = " , mb_email_certify = '' ";
// set mb_name = '$mb_name', 제거
$sql = " update {$g4[member_table]}
$sql = " update {$g4['member_table']}
set mb_nick = '{$mb_nick}',
mb_password_q = '{$mb_password_q}',
mb_password_a = '{$mb_password_a}',
mb_mailling = '{$mb_mailling}',
mb_sms = '{$mb_sms}',
mb_open = '{$mb_open}',
mb_email = '{$mb_email}',
mb_homepage = '{$mb_homepage}',
mb_tel = '{$mb_tel}',
mb_hp = '{$mb_hp}',
mb_zip1 = '{$mb_zip1}',
mb_zip2 = '{$mb_zip2}',
mb_addr1 = '{$mb_addr1}',
mb_addr2 = '{$mb_addr2}',
mb_signature = '{$mb_signature}',
mb_profile = '{$mb_profile}',
mb_1 = '{$mb_1}',
mb_2 = '{$mb_2}',
mb_3 = '{$mb_3}',
mb_4 = '{$mb_4}',
mb_5 = '{$mb_5}',
mb_6 = '{$mb_6}',
mb_7 = '{$mb_7}',
mb_8 = '{$mb_8}',
mb_9 = '{$mb_9}',
mb_10 = '{$mb_10}'
{$sql_password}
{$sql_icon}
{$sql_nick_date}
{$sql_open_date}
{$sql_sex}
{$sql_email_certify}
where mb_id = '{$_POST[mb_id]}' ";
mb_mailling = '{$mb_mailling}',
mb_sms = '{$mb_sms}',
mb_open = '{$mb_open}',
mb_email = '{$mb_email}',
mb_homepage = '{$mb_homepage}',
mb_tel = '{$mb_tel}',
mb_hp = '{$mb_hp}',
mb_zip1 = '{$mb_zip1}',
mb_zip2 = '{$mb_zip2}',
mb_addr1 = '{$mb_addr1}',
mb_addr2 = '{$mb_addr2}',
mb_signature = '{$mb_signature}',
mb_profile = '{$mb_profile}',
mb_1 = '{$mb_1}',
mb_2 = '{$mb_2}',
mb_3 = '{$mb_3}',
mb_4 = '{$mb_4}',
mb_5 = '{$mb_5}',
mb_6 = '{$mb_6}',
mb_7 = '{$mb_7}',
mb_8 = '{$mb_8}',
mb_9 = '{$mb_9}',
mb_10 = '{$mb_10}'
{$sql_password}
{$sql_icon}
{$sql_nick_date}
{$sql_open_date}
{$sql_sex}
{$sql_email_certify}
where mb_id = '$mb_id' ";
sql_query($sql);
// 인증메일 발송
if ($old_email != $mb_email && $config[cf_use_email_certify])
{
if ($old_email != $mb_email && $config['cf_use_email_certify']) {
$subject = '인증확인 메일입니다.';
$mb_md5 = md5($mb_id.$mb_email.$member[mb_datetime]);
$certify_href = $g4[url].'/'.$g4[bbs].'/email_certify.php?mb_id='.$mb_id.'&amp;mb_md5='.$mb_md5;
$mb_md5 = md5($mb_id.$mb_email.$member['mb_datetime']);
$certify_href = $g4['url'].'/'.$g4['bbs'].'/email_certify.php?mb_id='.$mb_id.'&amp;mb_md5='.$mb_md5;
ob_start();
include_once ('./register_form_update_mail3.php');
$content = ob_get_contents();
ob_end_clean();
mailer($admin[mb_nick], $admin[mb_email], $mb_email, $subject, $content, 1);
mailer($admin['mb_nick'], $admin['mb_email'], $mb_email, $subject, $content, 1);
}
}
@ -332,23 +308,15 @@ else if ($w == 'u')
if ($msg)
echo '<script>alert(\''.$msg.'\');</script>';
/*
// 결과페이지는 https 에서 http 로 변경이 되어야 함
if ($g4[https_url])
$https_url = $g4[https_url].'/'.$g4[bbs];
else
$https_url = '.';
*/
$https_url = $g4[url].'/'.$g4[bbs];
$https_url = $g4['url'].'/'.$g4['bbs'];
if ($w == "") {
goto_url($https_url.'/register_result.php');
} else if ($w == 'u') {
$row = sql_fetch(" select mb_password from {$g4[member_table]} where mb_id = '{$member[mb_id]}' ");
$row = sql_fetch(" select mb_password from {$g4['member_table']} where mb_id = '{$member[mb_id]}' ");
$tmp_password = $row['mb_password'];
if ($old_email != $mb_email && $config[cf_use_email_certify]) {
if ($old_email != $mb_email && $config['cf_use_email_certify']) {
set_session("ss_mb_id", "");
alert('회원 정보가 수정 되었습니다.\n\nE-mail 주소가 변경되었으므로 다시 인증하셔야 합니다.', $g4['path']);
} else {
@ -361,7 +329,7 @@ if ($w == "") {
<input type="hidden" name="is_update" value="1">
</form>
<script>
alert(\'회원 정보가 수정 되었습니다.\');
alert("회원 정보가 수정 되었습니다.");
document.fregisterupdate.submit();
</script>
</body>

View File

@ -29,7 +29,7 @@ if (strstr($lo_url, "/$g4[admin]/") || $is_admin == 'super') $lo_url = '';
// 자바스크립트에서 go(-1) 함수를 쓰면 폼값이 사라질때 해당 폼의 상단에 사용하면
// 캐쉬의 내용을 가져옴. 완전한지는 검증되지 않음
header("Content-Type: text/html; charset=$g4[charset]");
header("Content-Type: text/html; charset={$g4['charset']}");
$gmnow = gmdate("D, d M Y H:i:s") . " GMT";
header("Expires: 0"); // rfc2616 - Section 14.21
header("Last-Modified: " . $gmnow);

View File

@ -1562,69 +1562,9 @@ function convert_charset($from_charset, $to_charset, $str)
}
// 회원가입시 회원아이디 오류 검사
function check_mb_id($reg_mb_id, $length=3)
// mysql_real_escape_string 의 alias 기능을 한다.
function escape_trim($field)
{
global $config, $g4;
if (!isset($reg_mb_id) || !$reg_mb_id)
return "회원아이디를 입력해 주십시오.";
if (preg_match("/[^0-9a-z_]+/i", $reg_mb_id)) {
return "회원아이디는 영문자, 숫자, _ 만 입력하세요."; // 유효하지 않은 회원아이디
} else if (strlen($reg_mb_id) < $length) {
return "회원아이디는 최소 {$length}글자 이상 입력하세요.";
} else {
$row = sql_fetch(" select count(*) as cnt from {$g4['member_table']} where mb_id = '$reg_mb_id' ");
if ($row['cnt']) {
return "이미 사용중인 회원아이디 입니다."; // 이미 존재하는 회원아이디
} else {
if (preg_match("/[\,]?{$reg_mb_id}/i", $config['cf_prohibit_id'])) {
return "이미 예약된 단어로 사용할 수 없는 회원아이디 입니다."; // 예약어로 금지된 회원아이디
}
}
}
return ""; // 사용해도 좋은 회원아이디
}
function check_mb_nick($reg_mb_nick)
{
global $g4;
if (!isset($reg_mb_nick) || !$reg_mb_nick)
return "별명을 입력해 주십시오.";
// 별명은 한글, 영문, 숫자만 가능
if (!check_string($reg_mb_nick, _G4_HANGUL_ + _G4_ALPHABETIC_ + _G4_NUMERIC_)) {
return "별명은 공백없이 한글, 영문, 숫자만 입력 가능합니다.";
} else if (strlen($reg_mb_nick) < 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']) {
return "이미 존재하는 별명입니다.";
}
}
return ""; // 사용해도 좋은 별명
}
function check_mb_email($reg_mb_id, $reg_mb_email)
{
global $g4;
if (!isset($reg_mb_email) || !$reg_mb_email)
return "E-mail 주소를 입력해 주십시오.";
if (!preg_match("/([0-9a-zA-Z_-]+)@([0-9a-zA-Z_-]+)\.([0-9a-zA-Z_-]+)/", $reg_mb_email)) {
return "E-mail 주소가 형식에 맞지 않습니다.";
} else {
$row = sql_fetch(" select count(*) as cnt from {$g4['member_table']} where mb_id <> '$reg_mb_id' and mb_email = '$reg_mb_email' ");
if ($row['cnt']) {
return "이미 사용중인 E-mail 주소입니다.";
}
}
return "";
return mysql_real_escape_string(htmlentities(trim($field)));
}
?>

View File

@ -9,7 +9,7 @@ function mailer($fname, $fmail, $to, $subject, $content, $type=0, $file='', $cc=
global $g4;
// 메일발송 사용을 하지 않는다면
if (!$config[cf_email_use]) return;
if (!$config['cf_email_use']) return;
$fname = "=?$g4[charset]?B?" . base64_encode($fname) . "?=";
$subject = "=?$g4[charset]?B?" . base64_encode($subject) . "?=";

View File

@ -30,7 +30,7 @@ $(function() {
$("#captcha_key").focus();//이미지 새로고침 후 입력박스에 포커스 : 지운아빠 2012-07-13
}
})
.css("cursor", "pointer");
.css("cursor", "pointer")
.trigger("click");
$("#captcha_wav").click(function(){

View File

@ -145,16 +145,17 @@ function get_captcha($input_name, $captcha_no)
set_session('ss_captcha_use', true);
$captcha_class = str_pad($captcha_no,2,'0',STR_PAD_LEFT);// 캡챠 클래스를 선택할 수 있도록 지운아빠 2012-07-24
$s = "";
$s .= "<fieldset id=\"captcha".$captcha_class."\">\n";
$s .= "<legend>자동등록방지</legend>\n";
$s .= "<img src=\"{$g4['path']}/plugin/captcha/img/dot.gif\" id=\"captcha\" alt=\"자동등록방지 이미지\" title=\"이미지를 클릭하시면 숫자가 바뀝니다.\"/>\n";
$s .= "<a href=\"{$g4['path']}/plugin/captcha/wav.php\" id=\"captcha_wav\">wav</a>\n";
$s .= "<label>자동등록방지 입력</label>\n";
$s .= "<input type=\"text\" id=\"captcha_key\" name=\"$input_name\" class=\"captcha_box\" size=\"10\" maxlength=\"5\" required=\"required\" title=\"스팸방지\" title=\"이미지의 숫자를 순서대로 입력하세요.\" />\n";
$s .= "<p>이미지의 숫자를 순서대로 입력하세요. 이미지를 클릭하시면 새로운 숫자가 나타납니다.</p>\n";
$s .= "</fieldset>\n";
return $s;
$code = '<fieldset id="captcha'.$captcha_class.'">';
$code .= '<legend>자동등록방지</legend>';
//$code .= '<img src="" id="captcha" alt="자동등록방지 이미지" title="이미지를 클릭하시면 숫자가 바뀝니다.">';
$code .= '<iframe id="captcha_iframe" name="captcha_iframe" src="'.$g4['path'].'/plugin/captcha/run.php" width="80" height="25" frameborder="0" scrolling="no"></iframe>';
$code .= '<a href="'.$g4['path'].'/plugin/captcha/run.php" target="captcha_iframe">새로고침</a>';
$code .= '<a href="'.$g4['path'].'/plugin/captcha/wav.php" id="captcha_wav">wav</a>';
$code .= '<label>자동등록방지 입력</label>';
$code .= '<input type="text" id="captcha_key" name="'.$input_name.'" class="captcha_box frm_input" size="10" maxlength="5" required title="자동등록방지 입력">';
$code .= '<p>이미지의 숫자를 순서대로 입력하세요. 이미지를 클릭하시면 새로운 숫자가 나타납니다.</p>';
$code .= '</fieldset>';
return $code;
}

View File

@ -1,5 +1,11 @@
<?
include_once("_common.php");
include_once($g4['path'].'/lib/register.lib.php');
echo check_mb_email($_POST['reg_mb_id'], $_POST['reg_mb_email']);
$mb_email = escape_trim($_POST['reg_mb_email']);
$mb_id = escape_trim($_POST['reg_mb_id']);
if ($msg = empty_mb_email($mb_email)) die($msg);
if ($msg = valid_mb_email($mb_email)) die($msg);
if ($msg = exist_mb_email($mb_email, $mb_id)) die($msg);
?>

View File

@ -1,5 +1,12 @@
<?
include_once("_common.php");
include_once($g4['path'].'/lib/register.lib.php');
echo check_mb_id($_POST['reg_mb_id']);
$mb_id = escape_trim($_POST['reg_mb_id']);
if ($msg = empty_mb_id($mb_id)) die($msg);
if ($msg = valid_mb_id($mb_id)) die($msg);
if ($msg = count_mb_id($mb_id)) die($msg);
if ($msg = exist_mb_id($mb_id)) die($msg);
if ($msg = reserve_mb_id($mb_id)) die($msg);
?>

View File

@ -1,5 +1,12 @@
<?
include_once("_common.php");
include_once($g4['path'].'/lib/register.lib.php');
echo check_mb_nick($_POST['reg_mb_nick']);
$mb_nick = escape_trim($_POST['reg_mb_nick']);
$mb_id = escape_trim($_POST['reg_mb_id']);
if ($msg = empty_mb_nick($mb_nick)) die($msg);
if ($msg = valid_mb_nick($mb_nick)) die($msg);
if ($msg = count_mb_nick($mb_nick)) die($msg);
if ($msg = exist_mb_nick($mb_nick, $mb_id)) die($msg);
?>

View File

@ -22,7 +22,8 @@ var reg_mb_nick_check = function() {
type: "POST",
url: member_skin_path+"/ajax_mb_nick_check.php",
data: {
"reg_mb_nick": ($("#reg_mb_nick").val())
"reg_mb_nick": ($("#reg_mb_nick").val()),
'reg_mb_id': encodeURIComponent($('#reg_mb_id').val())
},
cache: false,
async: false,
@ -40,8 +41,8 @@ var reg_mb_email_check = function() {
type: 'POST',
url: member_skin_path+'/ajax_mb_email_check.php',
data: {
'reg_mb_id': encodeURIComponent($('#reg_mb_id').val()),
'reg_mb_email': $('#reg_mb_email').val()
'reg_mb_email': $('#reg_mb_email').val(),
'reg_mb_id': encodeURIComponent($('#reg_mb_id').val())
},
cache: false,
async: false,

View File

@ -1,9 +1,5 @@
<?
if (!defined("_GNUBOARD_")) exit; // 개별 페이지 접근 불가
$required = "";
$readonly = "";
if ($w == '') $required = "required";
else if ($w == 'u') $readonly = "readonly";
?>
<script>
@ -15,9 +11,6 @@ var member_skin_path = "<?=$member_skin_path?>";
<input type="hidden" name="w" value="<?=$w?>">
<input type="hidden" name="url" value="<?=$urlencode?>">
<input type="hidden" name="mb_jumin" value="<?=$jumin?>">
<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="">
<? 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']?>">
@ -29,31 +22,17 @@ var member_skin_path = "<?=$member_skin_path?>";
<tr>
<th scope="row"><label for="reg_mb_id">아이디</label></th>
<td>
<<<<<<< HEAD
<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="회원아이디">
=======
<input type="text" id="reg_mb_id" name="mb_id" class="frm_input <?=$required?> <?=$readonly?>" value="<?=$member['mb_id']?>" maxlength="20" <?=$required?> <?=$readonly?>>
>>>>>>> 8532cb03667c58ee858ff3c7a65c1e4fd1a2b4f9
<input type="text" id="reg_mb_id" name="mb_id" class="frm_input minlength_3 <?=$required?> <?=$readonly?>" value="<?=$member['mb_id']?>" maxlength="20" <?=$required?> <?=$readonly?> title="회원아이디">
<span id="msg_mb_id"></span>
<span class="frm_info">영문자, 숫자, _ 만 입력 가능. 최소 3자이상 입력하세요.</span>
</td>
</tr>
<tr>
<<<<<<< HEAD
<th scope="row"><label for="mb_password">패스워드</label></th>
<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" class="minlength_3" <?=($w=='')?'required="required"':'';?> maxlength="20" title="패스워드 확인"></td>
=======
<th scope="row"><label for="reg_mb_password">패스워드</label></th>
<td><input type="password" id="reg_mb_password" name="mb_password" class="frm_input <?=$required?>" maxlength="20" <?=$required?>></td>
<td><input type="password" id="reg_mb_password" name="mb_password" class="frm_input minlength_3 <?=$required?>" maxlength="20" <?=$required?> 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" class="frm_input <?=$required?>" maxlength="20" <?=$required?>></td>
>>>>>>> 8532cb03667c58ee858ff3c7a65c1e4fd1a2b4f9
<td><input type="password" id="reg_mb_password_re" name="mb_password_re" class="frm_input minlength_3 <?=$required?>" maxlength="20" <?=$required?> title="패스워드 확인"></td>
</tr>
</table>
@ -62,12 +41,8 @@ var member_skin_path = "<?=$member_skin_path?>";
<tr>
<th scope="row"><label for="reg_mb_name">이름</label></th>
<td>
<<<<<<< HEAD
<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="이름">
=======
<input id="reg_mb_name" name="mb_name" class="frm_input <?=$required?> <?=$readonly?>" value="<?=$member['mb_name']?>" <?=$required?> <?=$readonly?>>
>>>>>>> 8532cb03667c58ee858ff3c7a65c1e4fd1a2b4f9
<? if ($w=='') { echo "(공백없이 한글만 입력 가능)"; } ?>
<input id="reg_mb_name" name="mb_name" class="frm_input hangul <?=$required?> <?=$readonly?>" value="<?=$member['mb_name']?>" <?=$required?> <?=$readonly?> title="이름">
<? if ($w=='') { echo "<span class=\"frm_info\">공백없이 한글만 입력하세요.</span>"; } ?>
</td>
</tr>
<? if ($req_nick) { ?>
@ -75,11 +50,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']:'';?>">
<<<<<<< HEAD
<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="별명">
=======
<input type="text" id="reg_mb_nick" name="mb_nick" class="frm_input required" maxlength="20" value="<?=isset($member['mb_nick'])?$member['mb_nick']:'';?>" required>
>>>>>>> 8532cb03667c58ee858ff3c7a65c1e4fd1a2b4f9
<input type="text" id="reg_mb_nick" name="mb_nick" class="frm_input required" maxlength="20" value="<?=isset($member['mb_nick'])?$member['mb_nick']:'';?>" required title="별명">
<span id="msg_mb_nick"></span>
<span class="frm_info">
공백없이 한글,영문,숫자만 입력 가능 (한글2자, 영문4자 이상)<br>
@ -93,16 +64,12 @@ 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']?>">
<<<<<<< HEAD
<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">
=======
<input type="text" id="reg_mb_email" name="mb_email" class="frm_input <?=$config['cf_use_email_certify']?"required":"";?>" maxlength="100" value='<?=isset($member['mb_email'])?$member['mb_email']:'';?>' <?=$config['cf_use_email_certify']?"required":"";?>>
>>>>>>> 8532cb03667c58ee858ff3c7a65c1e4fd1a2b4f9
<input type="text" id="reg_mb_email" name="mb_email" class="frm_input email <?=$config['cf_use_email_certify']?"required":"";?>" maxlength="100" value='<?=isset($member['mb_email'])?$member['mb_email']:'';?>' <?=$config['cf_use_email_certify']?"required":"";?> title="E-mail">
<span id="msg_mb_email"></span>
<? if ($config['cf_use_email_certify']) { ?>
<span class="frm_info">
<? if ($w=='') { echo "e-mail 로 발송된 내용을 확인한 후 인증하셔야 회원가입이 완료됩니다."; } ?>
<? if ($w=='u') { echo "e-mail 주소를 변경하시면 다시 인증하셔야 합니다."; } ?>
<? if ($w=='') { echo "E-mail 로 발송된 내용을 확인한 후 인증하셔야 회원가입이 완료됩니다."; } ?>
<? if ($w=='u') { echo "E-mail 주소를 변경하시면 다시 인증하셔야 합니다."; } ?>
</span>
<? } ?>
</td>
@ -223,7 +190,7 @@ var member_skin_path = "<?=$member_skin_path?>";
<? if ($w == "" && $config['cf_use_recommend']) { ?>
<tr>
<th scope="row"><label for="reg_mb_recommend">추천인아이디</label></th>
<td><input type="text" id="reg_mb_recommend" name="mb_recommend"></td>
<td><input type="text" id="reg_mb_recommend" name="mb_recommend" class="frm_input" title="추천인아이디"></td>
</tr>
<? } ?>
</table>
@ -321,7 +288,7 @@ function fregisterform_submit(f)
if ((f.w.value == "") || (f.w.value == "u" && f.mb_email.defaultValue != f.mb_email.value)) {
var msg = reg_mb_email_check();
if (msg) {
alert(mdg);
alert(msg);
f.reg_mb_email.select();
return false;
}

View File

@ -8,15 +8,15 @@ if (!defined("_GNUBOARD_")) exit; // 개별 페이지 접근 불가
</header>
<p>
<?=$mb[mb_name]?>님의 회원가입을 진심으로 축하합니다.<br>
회원님의 아이디는 <?=$mb[mb_id]?> 입니다.<br>
<?=$mb['mb_name']?>님의 회원가입을 진심으로 축하합니다.<br>
회원님의 아이디는 <?=$mb['mb_id']?> 입니다.<br>
회원님의 패스워드는 아무도 알 수 없는 암호화 코드로 저장되므로 안심하셔도 좋습니다.<br>
아이디, 패스워드 분실시에는 회원가입시 입력하신 패스워드 분실시 질문, 답변을 이용하여 찾을 수 있습니다.
</p>
<? if ($config[cf_use_email_certify]) { ?>
<? if ($config['cf_use_email_certify']) { ?>
<p>
회원 가입 시 입력하신 이메일 <strong><?=$mb[mb_email]?></strong>로 발송된 내용을 확인하신 후 인증하셔야 회원가입이 완료됩니다.
회원 가입 시 입력하신 이메일 <strong><?=$mb['mb_email']?></strong>로 발송된 내용을 확인하신 후 인증하셔야 회원가입이 완료됩니다.
</p>
<? } ?>
@ -25,6 +25,6 @@ if (!defined("_GNUBOARD_")) exit; // 개별 페이지 접근 불가
감사합니다.
</p>
<a href="<?=$g4[url]?>/">메인으로</a>
<a href="<?=$g4['url']?>/">메인으로</a>
</article>