Files
firstgarden-web-gnu/skin/member/neo/register_form.skin.php
2012-12-07 13:31:04 +09:00

397 lines
15 KiB
PHP

<?
if (!defined("_GNUBOARD_")) exit; // 개별 페이지 접근 불가
?>
<script>
var member_skin_path = "<?=$member_skin_path?>";
</script>
<script src="<?=$member_skin_path?>/ajax_register_form.jquery.js"></script>
<script src="<?=$g4[path]?>/js/md5.js"></script>
<script src="<?=$g4[path]?>/js/sideview.js"></script>
<form id="fregisterform" name="fregisterform" method="post" onsubmit="return fregisterform_submit(this);" enctype="multipart/form-data" autocomplete="off">
<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="">
<!-- <input type="hidden" name="token" value="<?=$token?>"> -->
<? if ($member[mb_sex]) { ?><input type="hidden" name="mb_sex" value="<?=$member[mb_sex]?>"><? } ?>
<? if ($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]?>">
<input type="hidden" name="mb_nick" value="<?=$member[mb_nick]?>">
<? } ?>
<table>
<caption>사이트 이용정보 입력</caption>
<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 "onblur='reg_mb_id_check();'"; } ?>>
<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":"";?>></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":"";?>></td>
</tr>
</table>
<table>
<caption>개인정보 입력</caption>
<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":"";?>>
<? if ($w=='') { echo "(공백없이 한글만 입력 가능)"; } ?>
</td>
</tr>
<? if ($member[mb_nick_date] <= date("Y-m-d", $g4[server_time] - ($config[cf_nick_modify] * 86400))) { // 별명수정일이 지났다면 수정가능 ?>
<tr>
<th scope="row"><label for="reg_mb_nick">별명</label></th>
<td>
<input type="hidden" name="mb_nick_default" value="<?=$member[mb_nick]?>">
<input type="text" id="reg_mb_nick" name="mb_nick" maxlength="20" value="<?=$member[mb_nick]?>" onblur="reg_mb_nick_check();">
<span id="msg_mb_nick"></span>
<br>공백없이 한글,영문,숫자만 입력 가능 (한글2자, 영문4자 이상)
<br>별명을 바꾸시면 앞으로 <?=(int)$config[cf_nick_modify]?>일 이내에는 변경 할 수 없습니다.
</td>
</tr>
<? } ?>
<tr>
<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='<?=$member[mb_email]?>' onblur="reg_mb_email_check()">
<span id="msg_mb_email"></span>
<? if ($config[cf_use_email_certify]) { ?>
<? if ($w=='') { echo "<br>e-mail 로 발송된 내용을 확인한 후 인증하셔야 회원가입이 완료됩니다."; } ?>
<? if ($w=='u') { echo "<br>e-mail 주소를 변경하시면 다시 인증하셔야 합니다."; } ?>
<? } ?>
</td>
</tr>
<? if ($w=="") { ?>
<tr>
<th scope="row"><label for="reg_mb_birth">생년월일</label></th>
<td><input type="text" id="reg_mb_birth" name="mb_birth" maxlength="8" required value="<?=$member[mb_birth]?>"></td>
</tr>
<? } ?>
<? if (!$member[mb_sex]) { ?>
<tr>
<th scope="row"><label for="reg_mb_sex">성별</label></th>
<td>
<select id="reg_mb_sex" name="mb_sex" required>
<option value="">선택하세요</option>
<option value="F">여자</option>
<option value="M">남자</option>
</select>
<script>//document.getElementById('mb_sex').value='<?=$member[mb_sex]?>';</script>
</td>
</tr>
<? } ?>
<? if ($config[cf_use_homepage]) { ?>
<tr>
<th scope="row"><label for="reg_mb_homepage">홈페이지</label></th>
<td><input type="text" id="reg_mb_homepage" name="mb_homepage" maxlength="255" <?=$config[cf_req_homepage]?'required':'';?> value="<?=$member[mb_homepage]?>"></td>
</tr>
<? } ?>
<? if ($config[cf_use_tel]) { ?>
<tr>
<th scope="row"><label for="reg_mb_tel">전화번호</label></th>
<td><input type="text" id="reg_mb_tel" name="mb_tel" maxlength="20" <?=$config[cf_req_tel]?'required':'';?> value="<?=$member[mb_tel]?>"></td>
</tr>
<? } ?>
<? if ($config[cf_use_hp]) { ?>
<tr>
<th scope="row"><label for="reg_mb_hp">핸드폰번호</label></th>
<td><input type="text" id="reg_mb_hp" name="mb_hp" maxlength="20" <?=$config[cf_req_hp]?'required':'';?> value="<?=$member[mb_hp]?>"></td>
</tr>
<? } ?>
<? if ($config[cf_use_addr]) { ?>
<tr>
<th scope="row">주소</th>
<td>
<input type="text" id="reg_mb_zip1" name="mb_zip1" maxlength="3" readonly <?=$config[cf_req_addr]?'required':'';?> value="<?=$member[mb_zip1]?>" title="우편번호 앞자리">
-
<input type="text" id="reg_mb_zip2" name="mb_zip2" maxlength="3" readonly <?=$config[cf_req_addr]?'required':'';?> value="<?=$member[mb_zip2]?>" title="우편번호 뒷자리">
<a href="javascript:;" onclick="win_zip('fregisterform', 'mb_zip1', 'mb_zip2', 'mb_addr1', 'mb_addr2');">주소찾기</a>
<input type="text" id="reg_mb_addr1" name="mb_addr1" readonly <?=$config[cf_req_addr]?'required':'';?> value="<?=$member[mb_addr1]?>" title="행정구역주소">
<input type="text" id="reg_mb_addr2" name="mb_addr2" <?=$config[cf_req_addr]?'required':'';?> value="<?=$member[mb_addr2]?>" title="상세주소">
</td>
</tr>
<? } ?>
</table>
<table>
<caption>기타 개인설정</caption>
<? if ($config[cf_use_signature]) { ?>
<tr>
<th scope="row"><label for="reg_mb_signature">서명</label></th>
<td><textarea id="reg_mb_signature" name="mb_signature" <?=$config[cf_req_signature]?'required':'';?>><?=$member[mb_signature]?></textarea></td>
</tr>
<? } ?>
<? if ($config[cf_use_profile]) { ?>
<tr>
<th scope="row"><label for="reg_mb_profile">자기소개</label></th>
<td><textarea id="reg_mb_profile" name="mb_profile" <?=$config[cf_req_profile]?'required':'';?>><?=$member[mb_profile]?></textarea></td>
</tr>
<? } ?>
<? if ($member[mb_level] >= $config[cf_icon_level]) { ?>
<tr>
<th scope="row"><label for="reg_mb_icon">회원아이콘</label></th>
<td>
<input type="file" id="reg_mb_icon" name="mb_icon">
이미지 크기는 가로 <?=$config[cf_member_icon_width]?>픽셀, 세로 <?=$config[cf_member_icon_height]?>픽셀 이하로 해주세요.<br>
gif만 가능 / 용량:<?=number_format($config[cf_member_icon_size])?>바이트 이하만 등록됩니다.)
<? if ($w == 'u' && file_exists($mb_icon)) { ?>
<input type="checkbox" id="del_mb_icon" name="del_mb_icon" value="1"> 삭제
<? } ?>
</td>
</tr>
<? } ?>
<tr>
<th scope="row"><label for="reg_mb_mailling">메일링서비스</label></th>
<td><input type="checkbox" id="reg_mb_mailling" name="mb_mailling" value="1" <?=($w=='' || $member[mb_mailling])?'checked':'';?>>정보 메일을 받겠습니다.</td>
</tr>
<tr>
<th scope="row"><label for="reg_mb_sms">SMS 수신여부</label></th>
<td><input type="checkbox" id="reg_mb_sms" name="mb_sms" value="1" <?=($w=='' || $member[mb_sms])?'checked':'';?>>핸드폰 문자메세지를 받겠습니다.</td>
</tr>
<? if ($member[mb_open_date] <= date("Y-m-d", $g4[server_time] - ($config[cf_open_modify] * 86400))) { // 정보공개 수정일이 지났다면 수정가능 ?>
<tr>
<th scope="row"><label for="reg_mb_open">정보공개</label></th>
<td>
<input type="hidden" name="mb_open_default" value="<?=$member[mb_open]?>">
<input type="checkbox" id="reg_mb_open" name="mb_open" value="1" <?=($w=='' || $member[mb_open])?'checked':'';?>>다른분들이 나의 정보를 볼 수 있도록 합니다.<br>
정보공개를 바꾸시면 앞으로 <?=(int)$config[cf_open_modify]?>일 이내에는 변경이 안됩니다.
</td>
</tr>
<? } else { ?>
<tr>
<th scope="row">정보공개</th>
<td>
<input type="hidden" name="mb_open" value="<?=$member[mb_open]?>">
정보공개는 수정후 <?=(int)$config[cf_open_modify]?>일 이내, <?=date("Y년 m월 j일", strtotime("$member[mb_open_date] 00:00:00") + ($config[cf_open_modify] * 86400))?> 까지는 변경이 안됩니다.<br>
이렇게 하는 이유는 잦은 정보공개 수정으로 인하여 쪽지를 보낸 후 받지 않는 경우를 막기 위해서 입니다.
</td>
</tr>
<? } ?>
<? 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>
</tr>
<? } ?>
</table>
<fieldset>
<legend>자동등록방지</legend>
<img id="kcaptcha_image">
<input type="text" id="wr_key" name="wr_key" required>
왼쪽의 글자를 입력하세요.
</fieldset>
<div class="btn_confirm">
<input type="submit" value="회원가입" accesskey="s">
</div>
</form>
<script src="<?="$g4[path]/js/jquery.kcaptcha.js"?>"></script>
<script>
// submit 최종 폼체크
function fregisterform_submit(f)
{
// 회원아이디 검사
if (f.w.value == "") {
reg_mb_id_check();
if (document.getElementById('mb_id_enabled').value!='000') {
alert('회원아이디를 입력하지 않았거나 입력에 오류가 있습니다.');
document.getElementById('reg_mb_id').select();
return false;
}
}
if (f.w.value == '') {
if (f.mb_password.value.length < 3) {
alert('패스워드를 3글자 이상 입력하십시오.');
f.mb_password.focus();
return false;
}
}
if (f.mb_password.value != f.mb_password_re.value) {
alert('패스워드가 같지 않습니다.');
f.mb_password_re.focus();
return false;
}
if (f.mb_password.value.length > 0) {
if (f.mb_password_re.value.length < 3) {
alert('패스워드를 3글자 이상 입력하십시오.');
f.mb_password_re.focus();
return false;
}
}
/*
if (f.mb_password_q.value.length < 1) {
alert('패스워드 분실시 질문을 선택하거나 입력하십시오.');
f.mb_password_q.focus();
return false;
}
if (f.mb_password_a.value.length < 1) {
alert('패스워드 분실시 답변을 입력하십시오.');
f.mb_password_a.focus();
return false;
}
*/
// 이름 검사
if (f.w.value=='') {
if (f.mb_name.value.length < 1) {
alert('이름을 입력하십시오.');
f.mb_name.focus();
return false;
}
var pattern = /([^가-힣\x20])/i;
if (pattern.test(f.mb_name.value)) {
alert('이름은 한글로 입력하십시오.');
f.mb_name.focus();
return false;
}
}
// 별명 검사
if ((f.w.value == "") ||
(f.w.value == "u" && f.mb_nick.defaultValue != f.mb_nick.value)) {
reg_mb_nick_check();
if (document.getElementById('mb_nick_enabled').value!='000') {
alert('별명을 입력하지 않았거나 입력에 오류가 있습니다.');
document.getElementById('reg_mb_nick').select();
return false;
}
}
// E-mail 검사
if ((f.w.value == "") ||
(f.w.value == "u" && f.mb_email.defaultValue != f.mb_email.value)) {
reg_mb_email_check();
if (document.getElementById('mb_email_enabled').value!='000') {
alert('E-mail을 입력하지 않았거나 입력에 오류가 있습니다.');
document.getElementById('reg_mb_email').select();
return false;
}
// 사용할 수 없는 E-mail 도메인
var domain = prohibit_email_check(f.mb_email.value);
if (domain) {
alert("'"+domain+"'은(는) 사용하실 수 없는 메일입니다.");
document.getElementById('reg_mb_email').focus();
return false;
}
}
if (typeof(f.mb_birth) != 'undefined') {
if (f.mb_birth.value.length < 1) {
alert('달력 버튼을 클릭하여 생일을 입력하여 주십시오.');
//f.mb_birth.focus();
return false;
}
var todays = <?=date("Ymd", $g4['server_time']);?>;
// 오늘날짜에서 생일을 빼고 거기서 140000 을 뺀다.
// 결과가 0 이상의 양수이면 만 14세가 지난것임
var n = todays - parseInt(f.mb_birth.value) - 140000;
if (n < 0) {
alert("만 14세가 지나지 않은 어린이는 정보통신망 이용촉진 및 정보보호 등에 관한 법률\n\n제 31조 1항의 규정에 의하여 법정대리인의 동의를 얻어야 하므로\n\n법정대리인의 이름과 연락처를 '자기소개'란에 별도로 입력하시기 바랍니다.");
return false;
}
}
if (typeof(f.mb_sex) != 'undefined') {
if (f.mb_sex.value == '') {
alert('성별을 선택하여 주십시오.');
f.mb_sex.focus();
return false;
}
}
if (typeof f.mb_icon != 'undefined') {
if (f.mb_icon.value) {
if (!f.mb_icon.value.toLowerCase().match(/.(gif)$/i)) {
alert('회원아이콘이 gif 파일이 아닙니다.');
f.mb_icon.focus();
return false;
}
}
}
if (typeof(f.mb_recommend) != 'undefined') {
if (f.mb_id.value == f.mb_recommend.value) {
alert('본인을 추천할 수 없습니다.');
f.mb_recommend.focus();
return false;
}
}
if (!check_kcaptcha(f.wr_key)) {
return false;
}
<?
if ($g4[https_url])
echo "f.action = '$g4[https_url]/$g4[bbs]/register_form_update.php';";
else
echo "f.action = './register_form_update.php';";
?>
// 보안인증관련 코드로 반드시 포함되어야 합니다.
set_cookie("<?=md5($token)?>", "<?=base64_encode($token)?>", 1, "<?=$g4['cookie_domain']?>");
return true;
}
// 금지 메일 도메인 검사
function prohibit_email_check(email)
{
email = email.toLowerCase();
var prohibit_email = "<?=trim(strtolower(preg_replace("/(\r\n|\r|\n)/", ",", $config[cf_prohibit_email])));?>";
var s = prohibit_email.split(",");
var tmp = email.split("@");
var domain = tmp[tmp.length - 1]; // 메일 도메인만 얻는다
for (i=0; i<s.length; i++) {
if (s[i] == domain)
return domain;
}
return "";
}
</script>