티스토리 뷰

반응형

그누보드에서 회원가입할때 개인정보를 사용하지 않고 가입하는 방법. 이메일, 이름 사용안함

여기에서 등장하는 파일들은 미리복사해서 보관해둔다 해당폴더에서 ctrl+c 로 ctrl+v로 복사본 파일 생성
theme/테마/skin/member/register.skin.php
개인정보의 이름 이메일 부분을 지워준다.

theme/테마/skin/member/register_form.skin.php
여기서는 기존의 이름, 이메일 입력부분을 지워주고 새로운 아이디를 만들어주는 코드를 추가해준다.

아이디가 있으면 적어주고 없다면 새로운 랜덤한 아이디를 만들어준다. 

<input type="text" name="mb_id" value="<?php echo $member['mb_id'] ?>" id="reg_mb_id" <?php echo $required ?> <?php echo $readonly ?> class="frm_input full_input <?php echo $required ?> <?php echo $readonly ?>" minlength="3" maxlength="20" placeholder="아이디">

위의 내용을 아래처럼 바꿔준다 

					<?php if (isset($member['mb_id']) && $member['mb_id']){?>
	                <input type="text" name="mb_id" value="<?php echo $member['mb_id'] ?>" id="reg_mb_id" <?php echo $required ?> <?php echo $readonly ?> class="frm_input full_input <?php echo $required ?> <?php echo $readonly ?>" minlength="3" maxlength="20" placeholder="아이디">
					<?php } else {
						
						$characters = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
						$randomId = '';
						// 문자열 길이만큼 랜덤한 문자 선택하여 아이디 생성
						for ($i = 0; $i < 5; $i++) {
							$randomId_A .= $characters[rand(0, strlen($characters) - 1)];
						}
						for ($i = 0; $i < 5; $i++) {
							$randomId_B .= $characters[rand(0, strlen($characters) - 1)];
						}
						$randomId = $randomId_A."_".$randomId_B;?>				
					<input type="text" name="mb_id" value="<?php echo $randomId ?>" id="reg_mb_id" <?php echo $required ?> <?php echo $readonly ?> class="frm_input full_input <?php echo $required ?> <?php echo $readonly ?>" minlength="3" maxlength="20" placeholder="아이디">
					<?php } ?>

그리고 이름을 입력하는 코드는 제거한다. 

<li>
	                <label for="reg_mb_name">이름 (필수)<?php echo $desc_name ?></label>
	                <input type="text" id="reg_mb_name" name="mb_name" value="<?php echo get_text($member['mb_name']) ?>" <?php echo $required ?> <?php echo $readonly; ?> class="frm_input full_input <?php echo $required ?> <?php echo $name_readonly ?>" size="10" placeholder="이름">
	            </li>

아래에 script 부분에서 삭제해준

    // 이름 검사
    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.select();
            return false;
        }
        */
    }
  // E-mail 검사
    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(msg);
            f.reg_mb_email.select();
            return false;
        }
    }

그리고 메일링 체크 및 정보공개부분도 삭제합니다.

	            <li class="chk_box">
		        	<input type="checkbox" name="mb_mailling" value="1" id="reg_mb_mailling" <?php echo ($w=='' || $member['mb_mailling'])?'checked':''; ?> class="selec_chk">
		            <label for="reg_mb_mailling">
		            	<span></span>
		            	<b class="sound_only">메일링서비스</b>
		            </label>
		            <span class="chk_li">정보 메일을 받겠습니다.</span>
		        </li>
		        <?php if (isset($member['mb_open_date']) && $member['mb_open_date'] <= date("Y-m-d", G5_SERVER_TIME - ($config['cf_open_modify'] * 86400)) || empty($member['mb_open_date'])) { // 정보공개 수정일이 지났다면 수정가능 ?>
		        <li class="chk_box">
		            <input type="checkbox" name="mb_open" value="1" id="reg_mb_open" <?php echo ($w=='' || $member['mb_open'])?'checked':''; ?> class="selec_chk">
		      		<label for="reg_mb_open">
		      			<span></span>
		      			<b class="sound_only">정보공개</b>
		      		</label>
		            <span class="chk_li">다른분들이 나의 정보를 볼 수 있도록 합니다.</span>
		            <button type="button" class="tooltip_icon"><i class="fa fa-question-circle-o" aria-hidden="true"></i><span class="sound_only">설명보기</span></button>
		            <span class="tooltip">
		                정보공개를 바꾸시면 앞으로 <?php echo (int)$config['cf_open_modify'] ?>일 이내에는 변경이 안됩니다.
		            </span>
		            <input type="hidden" name="mb_open_default" value="<?php echo $member['mb_open'] ?>">
		        </li>
		        <?php } else { ?>
	            <li>
	                정보공개
	                <input type="hidden" name="mb_open" value="<?php echo $member['mb_open'] ?>">
	                <button type="button" class="tooltip_icon"><i class="fa fa-question-circle-o" aria-hidden="true"></i><span class="sound_only">설명보기</span></button>
	                <span class="tooltip">
	                    정보공개는 수정후 <?php echo (int)$config['cf_open_modify'] ?>일 이내, <?php echo date("Y년 m월 j일", isset($member['mb_open_date']) ? strtotime("{$member['mb_open_date']} 00:00:00")+$config['cf_open_modify']*86400:G5_SERVER_TIME+$config['cf_open_modify']*86400); ?> 까지는 변경이 안됩니다.<br>
	                    이렇게 하는 이유는 잦은 정보공개 수정으로 인하여 쪽지를 보낸 후 받지 않는 경우를 막기 위해서 입니다.
	                </span>

	            </li>
	            <?php }  ?>

 

/bbs/register_form_update.php 에서 기존의 방식 때문에
닉네임을 이름으로 데이터 일치하고
메일 주소는 id@도메인 형식으로 가상의 데이타를 만들어줍니다.

#$mb_name        = isset($_POST['mb_name']) ? trim($_POST['mb_name']) : '';
$mb_nick        = isset($_POST['mb_nick']) ? trim($_POST['mb_nick']) : '';
$mb_name = $mb_nick;
#$mb_email       = get_email_address($mb_email);
$mail_domain = str_replace('https://','@',G5_DOMAIN);
$mb_email = $mb_id.$mail_domain;

위에 2개 코드잘보면서 해당 위치에서 변경해줍니다. 특히 메일 처리부분은 config.php 에서 G5_DOMAIN을 먼저 입력해줘야합니다. (php를 오랫만에 하다보니 str_replace함수를 다른 언어함수를 써버리고 깜빡했네요;;;)

/*
보안서버 도메인
회원가입, 글쓰기에 사용되는 https 로 시작되는 주소를 말합니다.
포트가 있다면 도메인 뒤에 :443 과 같이 입력하세요.
보안서버주소가 없다면 공란으로 두시면 되며 보안서버주소 뒤에 / 는 붙이지 않습니다.
입력 예) https://www.domain.com:443/gnuboard5
*/
define('G5_DOMAIN', 'https://도메인예시.kr');
define('G5_HTTPS_DOMAIN', 'https://도메인예시.kr');

 

 

여기까지로 회원 가입에서 고정닉네임 사용으로 그누보드를 변경하였습니다.

 

이 다음은 캡챠 (자동등록방지) 에 대해서 이어나가겠습니다.

반응형
댓글
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2025/03   »
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31
글 보관함