date("Y-m-d", G5_SERVER_TIME - ($config['cf_nick_modify'] * 86400))) $mb_nick = $member['mb_nick']; // 회원정보의 메일을 이전 메일로 옮기고 아래에서 비교함 $old_email = $member['mb_email']; } run_event('register_form_update_valid', $w, $mb_id, $mb_nick, $mb_email); if ($msg = exist_mb_nick($mb_nick, $mb_id)) alert($msg, "", true, true); if ($msg = exist_mb_email($mb_email, $mb_id)) alert($msg, "", true, true); } // 사용자 코드 실행 @include_once($member_skin_path.'/register_form_update.head.skin.php'); //=============================================================== // 본인확인 //--------------------------------------------------------------- $mb_hp = hyphen_hp_number($mb_hp); if($config['cf_cert_use'] && get_session('ss_cert_type') && get_session('ss_cert_dupinfo')) { // 중복체크 $sql = " select mb_id from {$g5['member_table']} where mb_id <> '{$member['mb_id']}' and mb_dupinfo = '".get_session('ss_cert_dupinfo')."' "; $row = sql_fetch($sql); if (!empty($row['mb_id'])) { alert("입력하신 본인확인 정보로 가입된 내역이 존재합니다."); } } $sql_certify = ''; $md5_cert_no = get_session('ss_cert_no'); $cert_type = get_session('ss_cert_type'); if ($config['cf_cert_use'] && $cert_type && $md5_cert_no) { // 해시값이 같은 경우에만 본인확인 값을 저장한다. if ($cert_type == 'ipin' && get_session('ss_cert_hash') == md5($mb_name.$cert_type.get_session('ss_cert_birth').$md5_cert_no)) { // 아이핀일때 hash 값 체크 hp미포함 $sql_certify .= " , mb_hp = '{$mb_hp}' "; $sql_certify .= " , mb_certify = '{$cert_type}' "; $sql_certify .= " , mb_adult = '".get_session('ss_cert_adult')."' "; $sql_certify .= " , mb_birth = '".get_session('ss_cert_birth')."' "; $sql_certify .= " , mb_sex = '".get_session+('ss_cert_sex')."' "; $sql_certify .= " , mb_dupinfo = '".get_session('ss_cert_dupinfo')."' "; if($w == 'u') $sql_certify .= " , mb_name = '{$mb_name}' "; } else if($cert_type != 'ipin' && get_session('ss_cert_hash') == md5($mb_name.$cert_type.get_session('ss_cert_birth').$mb_hp.$md5_cert_no)) { // 간편인증, 휴대폰일때 hash 값 체크 hp포함 $sql_certify .= " , mb_hp = '{$mb_hp}' "; $sql_certify .= " , mb_certify = '{$cert_type}' "; $sql_certify .= " , mb_adult = '".get_session('ss_cert_adult')."' "; $sql_certify .= " , mb_birth = '".get_session('ss_cert_birth')."' "; $sql_certify .= " , mb_sex = '".get_session('ss_cert_sex')."' "; $sql_certify .= " , mb_dupinfo = '".get_session('ss_cert_dupinfo')."' "; if($w == 'u') $sql_certify .= " , mb_name = '{$mb_name}' "; }else { alert('본인인증된 정보와 입력된 회원정보가 일치하지않습니다. 다시시도 해주세요'); } } else { if (get_session("ss_reg_mb_name") != $mb_name || get_session("ss_reg_mb_hp") != $mb_hp) { $sql_certify .= " , mb_hp = '{$mb_hp}' "; $sql_certify .= " , mb_certify = '' "; $sql_certify .= " , mb_adult = 0 "; $sql_certify .= " , mb_birth = '' "; $sql_certify .= " , mb_sex = '' "; } } //=============================================================== if ($w == '') { $sql = " insert into {$g5['member_table']} set mb_id = '{$mb_id}', mb_password = '".get_encrypt_string($mb_password)."', mb_name = '{$mb_name}', mb_nick = '{$mb_nick}', mb_nick_date = '".G5_TIME_YMD."', mb_email = '{$mb_email}', mb_homepage = '{$mb_homepage}', mb_tel = '{$mb_tel}', mb_zip1 = '{$mb_zip1}', mb_zip2 = '{$mb_zip2}', mb_addr1 = '{$mb_addr1}', mb_addr2 = '{$mb_addr2}', mb_addr3 = '{$mb_addr3}', mb_addr_jibeon = '{$mb_addr_jibeon}', mb_signature = '{$mb_signature}', mb_profile = '{$mb_profile}', mb_today_login = '".G5_TIME_YMDHIS."', mb_datetime = '".G5_TIME_YMDHIS."', mb_ip = '{$_SERVER['REMOTE_ADDR']}', mb_level = '{$config['cf_register_level']}', mb_recommend = '{$mb_recommend}', mb_login_ip = '{$_SERVER['REMOTE_ADDR']}', mb_mailling = '{$mb_mailling}', mb_sms = '{$mb_sms}', mb_open = '{$mb_open}', mb_open_date = '".G5_TIME_YMD."', 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_certify} "; // 이메일 인증을 사용하지 않는다면 이메일 인증시간을 바로 넣는다 if (!$config['cf_use_email_certify']) $sql .= " , mb_email_certify = '".G5_TIME_YMDHIS."' "; sql_query($sql); // 회원가입 포인트 부여 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_email_mb_member']) { $subject = '['.$config['cf_title'].'] 회원가입을 축하드립니다.'; // 어떠한 회원정보도 포함되지 않은 일회용 난수를 생성하여 인증에 사용 if ($config['cf_use_email_certify']) { $mb_md5 = md5(pack('V*', rand(), rand(), rand(), rand())); sql_query(" update {$g5['member_table']} set mb_email_certify2 = '$mb_md5' where mb_id = '$mb_id' "); $certify_href = G5_BBS_URL.'/email_certify.php?mb_id='.$mb_id.'&mb_md5='.$mb_md5; } ob_start(); include_once ('./register_form_update_mail1.php'); $content = ob_get_contents(); ob_end_clean(); $content = run_replace('register_form_update_mail_mb_content', $content, $mb_id); mailer($config['cf_admin_email_name'], $config['cf_admin_email'], $mb_email, $subject, $content, 1); run_event('register_form_update_send_mb_mail', $config['cf_admin_email_name'], $config['cf_admin_email'], $mb_email, $subject, $content); // 메일인증을 사용하는 경우 가입메일에 인증 url이 있으므로 인증메일을 다시 발송되지 않도록 함 if($config['cf_use_email_certify']) $old_email = $mb_email; } // 최고관리자님께 메일 발송 if ($config['cf_email_mb_super_admin']) { $subject = run_replace('register_form_update_mail_admin_subject', '['.$config['cf_title'].'] '.$mb_nick .' 님께서 회원으로 가입하셨습니다.', $mb_id, $mb_nick); ob_start(); include_once ('./register_form_update_mail2.php'); $content = ob_get_contents(); ob_end_clean(); $content = run_replace('register_form_update_mail_admin_content', $content, $mb_id); mailer($mb_nick, $mb_email, $config['cf_admin_email'], $subject, $content, 1); run_event('register_form_update_send_admin_mail', $mb_nick, $mb_email, $config['cf_admin_email'], $subject, $content); } // 메일인증 사용하지 않는 경우에만 로그인 if (!$config['cf_use_email_certify']) set_session('ss_mb_id', $mb_id); set_session('ss_mb_reg', $mb_id); if($cert_type == 'ipin' && get_session('ss_cert_hash') == md5($mb_name.$cert_type.get_session('ss_cert_birth').$md5_cert_no)) { // 아이핀일때 hash 값 체크 hp미포함) insert_member_cert_history($mb_id, $mb_name, $mb_hp, get_session('ss_cert_birth'), get_session('ss_cert_type') ); // 본인인증 후 정보 수정 시 내역 기록 }else if($cert_type != 'ipin' && get_session('ss_cert_hash') == md5($mb_name.$cert_type.get_session('ss_cert_birth').$mb_hp.$md5_cert_no)) { // 간편인증, 휴대폰일때 hash 값 체크 hp포함 insert_member_cert_history($mb_id, $mb_name, $mb_hp, get_session('ss_cert_birth'), get_session('ss_cert_type') ); // 본인인증 후 정보 수정 시 내역 기록 } } else if ($w == 'u') { if (!trim(get_session('ss_mb_id'))) alert('로그인 되어 있지 않습니다.'); if (trim($_POST['mb_id']) != $mb_id) alert("로그인된 정보와 수정하려는 정보가 틀리므로 수정할 수 없습니다.\\n만약 올바르지 않은 방법을 사용하신다면 바로 중지하여 주십시오."); $sql_password = ""; if ($mb_password) $sql_password = " , mb_password = '".get_encrypt_string($mb_password)."' "; $sql_nick_date = ""; if ($mb_nick_default != $mb_nick) $sql_nick_date = " , mb_nick_date = '".G5_TIME_YMD."' "; $sql_open_date = ""; if ($mb_open_default != $mb_open) $sql_open_date = " , mb_open_date = '".G5_TIME_YMD."' "; // 이전 메일주소와 수정한 메일주소가 틀리다면 인증을 다시 해야하므로 값을 삭제 $sql_email_certify = ''; if ($old_email != $mb_email && $config['cf_use_email_certify']) $sql_email_certify = " , mb_email_certify = '' "; $sql = " update {$g5['member_table']} set mb_nick = '{$mb_nick}', 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_zip1 = '{$mb_zip1}', mb_zip2 = '{$mb_zip2}', mb_addr1 = '{$mb_addr1}', mb_addr2 = '{$mb_addr2}', mb_addr3 = '{$mb_addr3}', mb_addr_jibeon = '{$mb_addr_jibeon}', 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_nick_date} {$sql_open_date} {$sql_email_certify} {$sql_certify} where mb_id = '$mb_id' "; sql_query($sql); if($cert_type == 'ipin' && get_session('ss_cert_hash') == md5($mb_name.$cert_type.get_session('ss_cert_birth').$md5_cert_no)) { // 아이핀일때 hash 값 체크 hp미포함) insert_member_cert_history($mb_id, $mb_name, $mb_hp, get_session('ss_cert_birth'), get_session('ss_cert_type') ); // 본인인증 후 정보 수정 시 내역 기록 }else if($cert_type != 'ipin' && get_session('ss_cert_hash') == md5($mb_name.$cert_type.get_session('ss_cert_birth').$mb_hp.$md5_cert_no)) { // 간편인증, 휴대폰일때 hash 값 체크 hp포함 insert_member_cert_history($mb_id, $mb_name, $mb_hp, get_session('ss_cert_birth'), get_session('ss_cert_type') ); // 본인인증 후 정보 수정 시 내역 기록 } } // 회원 아이콘 $mb_dir = G5_DATA_PATH.'/member/'.substr($mb_id,0,2); // 아이콘 삭제 if (isset($_POST['del_mb_icon'])) { @unlink($mb_dir.'/'.get_mb_icon_name($mb_id).'.gif'); } $msg = ""; // 아이콘 업로드 $mb_icon = ''; $image_regex = "/(\.(gif|jpe?g|png))$/i"; $mb_icon_img = get_mb_icon_name($mb_id).'.gif'; if (isset($_FILES['mb_icon']) && is_uploaded_file($_FILES['mb_icon']['tmp_name'])) { if (preg_match($image_regex, $_FILES['mb_icon']['name'])) { // 아이콘 용량이 설정값보다 이하만 업로드 가능 if ($_FILES['mb_icon']['size'] <= $config['cf_member_icon_size']) { @mkdir($mb_dir, G5_DIR_PERMISSION); @chmod($mb_dir, G5_DIR_PERMISSION); $dest_path = $mb_dir.'/'.$mb_icon_img; move_uploaded_file($_FILES['mb_icon']['tmp_name'], $dest_path); chmod($dest_path, G5_FILE_PERMISSION); if (file_exists($dest_path)) { //=================================================================\ // 090714 // gif 파일에 악성코드를 심어 업로드 하는 경우를 방지 // 에러메세지는 출력하지 않는다. //----------------------------------------------------------------- $size = @getimagesize($dest_path); if (!($size[2] === 1 || $size[2] === 2 || $size[2] === 3)) { // jpg, gif, png 파일이 아니면 올라간 이미지를 삭제한다. @unlink($dest_path); } else if ($size[0] > $config['cf_member_icon_width'] || $size[1] > $config['cf_member_icon_height']) { $thumb = null; if($size[2] === 2 || $size[2] === 3) { //jpg 또는 png 파일 적용 $thumb = thumbnail($mb_icon_img, $mb_dir, $mb_dir, $config['cf_member_icon_width'], $config['cf_member_icon_height'], true, true); if($thumb) { @unlink($dest_path); rename($mb_dir.'/'.$thumb, $dest_path); } } if( !$thumb ){ // 아이콘의 폭 또는 높이가 설정값 보다 크다면 이미 업로드 된 아이콘 삭제 @unlink($dest_path); } } //=================================================================\ } } else { $msg .= '회원아이콘을 '.number_format($config['cf_member_icon_size']).'바이트 이하로 업로드 해주십시오.'; } } else { $msg .= $_FILES['mb_icon']['name'].'은(는) 이미지 파일이 아닙니다.'; } } // 회원 프로필 이미지 if( $config['cf_member_img_size'] && $config['cf_member_img_width'] && $config['cf_member_img_height'] ){ $mb_tmp_dir = G5_DATA_PATH.'/member_image/'; $mb_dir = $mb_tmp_dir.substr($mb_id,0,2); if( !is_dir($mb_tmp_dir) ){ @mkdir($mb_tmp_dir, G5_DIR_PERMISSION); @chmod($mb_tmp_dir, G5_DIR_PERMISSION); } // 아이콘 삭제 if (isset($_POST['del_mb_img'])) { @unlink($mb_dir.'/'.$mb_icon_img); } // 회원 프로필 이미지 업로드 $mb_img = ''; if (isset($_FILES['mb_img']) && is_uploaded_file($_FILES['mb_img']['tmp_name'])) { $msg = $msg ? $msg."\\r\\n" : ''; if (preg_match($image_regex, $_FILES['mb_img']['name'])) { // 아이콘 용량이 설정값보다 이하만 업로드 가능 if ($_FILES['mb_img']['size'] <= $config['cf_member_img_size']) { @mkdir($mb_dir, G5_DIR_PERMISSION); @chmod($mb_dir, G5_DIR_PERMISSION); $dest_path = $mb_dir.'/'.$mb_icon_img; move_uploaded_file($_FILES['mb_img']['tmp_name'], $dest_path); chmod($dest_path, G5_FILE_PERMISSION); if (file_exists($dest_path)) { $size = @getimagesize($dest_path); if (!($size[2] === 1 || $size[2] === 2 || $size[2] === 3)) { // gif jpg png 파일이 아니면 올라간 이미지를 삭제한다. @unlink($dest_path); } else if ($size[0] > $config['cf_member_img_width'] || $size[1] > $config['cf_member_img_height']) { $thumb = null; if($size[2] === 2 || $size[2] === 3) { //jpg 또는 png 파일 적용 $thumb = thumbnail($mb_icon_img, $mb_dir, $mb_dir, $config['cf_member_img_width'], $config['cf_member_img_height'], true, true); if($thumb) { @unlink($dest_path); rename($mb_dir.'/'.$thumb, $dest_path); } } if( !$thumb ){ // 아이콘의 폭 또는 높이가 설정값 보다 크다면 이미 업로드 된 아이콘 삭제 @unlink($dest_path); } } //=================================================================\ } } else { $msg .= '회원이미지을 '.number_format($config['cf_member_img_size']).'바이트 이하로 업로드 해주십시오.'; } } else { $msg .= $_FILES['mb_img']['name'].'은(는) gif/jpg 파일이 아닙니다.'; } } } // 인증메일 발송 if ($config['cf_use_email_certify'] && $old_email != $mb_email) { $subject = '['.$config['cf_title'].'] 인증확인 메일입니다.'; // 어떠한 회원정보도 포함되지 않은 일회용 난수를 생성하여 인증에 사용 $mb_md5 = md5(pack('V*', rand(), rand(), rand(), rand())); sql_query(" update {$g5['member_table']} set mb_email_certify2 = '$mb_md5' where mb_id = '$mb_id' "); $certify_href = G5_BBS_URL.'/email_certify.php?mb_id='.$mb_id.'&mb_md5='.$mb_md5; ob_start(); include_once ('./register_form_update_mail3.php'); $content = ob_get_contents(); ob_end_clean(); $content = run_replace('register_form_update_mail_certify_content', $content, $mb_id); mailer($config['cf_admin_email_name'], $config['cf_admin_email'], $mb_email, $subject, $content, 1); run_event('register_form_update_send_certify_mail', $config['cf_admin_email_name'], $config['cf_admin_email'], $mb_email, $subject, $content); } // 신규회원 쿠폰발생 if($w == '' && $default['de_member_reg_coupon_use'] && $default['de_member_reg_coupon_term'] > 0 && $default['de_member_reg_coupon_price'] > 0) { $j = 0; $create_coupon = false; do { $cp_id = get_coupon_id(); $sql3 = " select count(*) as cnt from {$g5['g5_shop_coupon_table']} where cp_id = '$cp_id' "; $row3 = sql_fetch($sql3); if(!$row3['cnt']) { $create_coupon = true; break; } else { if($j > 20) break; } } while(1); if($create_coupon) { $cp_subject = '신규 회원가입 축하 쿠폰'; $cp_method = 2; $cp_target = ''; $cp_start = G5_TIME_YMD; $cp_end = date("Y-m-d", (G5_SERVER_TIME + (86400 * ((int)$default['de_member_reg_coupon_term'] - 1)))); $cp_type = 0; $cp_price = $default['de_member_reg_coupon_price']; $cp_trunc = 1; $cp_minimum = $default['de_member_reg_coupon_minimum']; $cp_maximum = 0; $sql = " INSERT INTO {$g5['g5_shop_coupon_table']} ( cp_id, cp_subject, cp_method, cp_target, mb_id, cp_start, cp_end, cp_type, cp_price, cp_trunc, cp_minimum, cp_maximum, cp_datetime ) VALUES ( '$cp_id', '$cp_subject', '$cp_method', '$cp_target', '$mb_id', '$cp_start', '$cp_end', '$cp_type', '$cp_price', '$cp_trunc', '$cp_minimum', '$cp_maximum', '".G5_TIME_YMDHIS."' ) "; $res = sql_query($sql, false); if($res) set_session('ss_member_reg_coupon', 1); } } // 사용자 코드 실행 @include_once ($member_skin_path.'/register_form_update.tail.skin.php'); if(isset($_SESSION['ss_cert_type'])) unset($_SESSION['ss_cert_type']); if(isset($_SESSION['ss_cert_no'])) unset($_SESSION['ss_cert_no']); if(isset($_SESSION['ss_cert_hash'])) unset($_SESSION['ss_cert_hash']); if(isset($_SESSION['ss_cert_birth'])) unset($_SESSION['ss_cert_birth']); if(isset($_SESSION['ss_cert_adult'])) unset($_SESSION['ss_cert_adult']); if ($msg) echo ''; run_event('register_form_update_after', $mb_id, $w); if ($w == '') { goto_url(G5_HTTP_BBS_URL.'/register_result.php'); } else if ($w == 'u') { $row = sql_fetch(" select mb_password from {$g5['member_table']} where mb_id = '{$member['mb_id']}' "); $tmp_password = $row['mb_password']; if ($old_email != $mb_email && $config['cf_use_email_certify']) { set_session('ss_mb_id', ''); alert('회원 정보가 수정 되었습니다.\n\nE-mail 주소가 변경되었으므로 다시 인증하셔야 합니다.', G5_URL); } else { echo ' 회원정보수정
'; } }