이메일 가입/로그인 정보
이메일 가입/로그인첨부파일
본문
8년만에 php다시 보는중 그땐 제로보드 썼었는데... apmsetup이 7까지 올라가다니 후덜임
DB건드리기가 귀찮아서 ID는 uniqid()에서 20자리만 취함(중복되서 오류나면 다시 하겠지..)
처음에 id를 email과 동일하게 늘리고 email을 id에 복사했는데 id를 쓰는 다른테이블도 있는것 같아서 걍 놔둠
로그인할때 get_member_by_email추가해서 처리함
#config_form.php#
<tr>
<th scope="row"><label for="cf_privacy">개인정보처리방침</label></th>
<td colspan="3"><textarea id="cf_privacy" name="cf_privacy" rows="10"><?php echo $config['cf_privacy'] ?></textarea></td>
</tr>
<!-- BEGIN LOGIN_EMAIL -->
<tr>
<th scope="row"><label for="cf_login_email">이메일 로그인</label></th>
<td colspan="3"><input type="checkbox" name="cf_login_email value="1" id="cf_login_email" <?php echo $config['cf_login_email']?'checked':''; ?>> <label for="cf_login_email">사용</label></td>
</tr>
<!-- END LOGIN_EMAIL -->
//LOGIN_EMAIL
if(!isset($config['cf_login_email'])) {
sql_query(" ALTER TABLE `{$g5['config_table']}`
ADD `cf_login_email` tinyint(4) NOT NULL DEFAULT '0' AFTER `cf_privacy` ", true);
}
#config_form_update.php#
$sql = " update {$g5['config_table']}
...
cf_privacy = '{$_POST['cf_privacy']}',
cf_login_email = '{$_POST['cf_login_email']}',
#lib/common.lib.php
function get_member($mb_id, $fields='*')
{
...
}
// 이메일로 회원 정보를 얻는다.
function get_member_by_email($mb_id, $fields='*')
{
global $g5;
return sql_fetch(" select $fields from {$g5['member_table']} where mb_email = TRIM('$mb_id') limit 1");
}
#bbs/login_check.php
if(!isset($config['cf_login_email']) || !$config['cf_login_email']) {
$mb = get_member($mb_id);
}
else
$mb = get_member_by_email($mb_id);
#bbs/password_lost2.php
삭제
$content .= '<span style="display:inline-block;width:100px">회원아이디</span> '.$mb['mb_id'].'<br>';
#skin/member/{skinname}/register_form.skin.php
<?php if(isset($config['cf_login_email']) && $config['cf_login_email']) { ?>
<tr>
<th scope="row"><label for="reg_mb_email">E-mail<strong class="sound_only">필수</strong></label></th>
<td>
<?php if ($config['cf_use_email_certify']) { ?>
<span class="frm_info">
<?php if ($w=='') { echo "E-mail 로 발송된 내용을 확인한 후 인증하셔야 회원가입이 완료됩니다."; } ?>
<?php if ($w=='u') { echo "E-mail 주소를 변경하시면 다시 인증하셔야 합니다."; } ?>
</span>
<?php } ?>
<input type="hidden" name="old_email" value="<?php echo $member['mb_email'] ?>">
<input type="text" name="mb_email" value="<?php echo isset($member['mb_email'])?$member['mb_email']:''; ?>"
id="reg_mb_email" required class="frm_input email required" size="70" maxlength="100"
onblur="document.fregisterform.mb_id.value = document.fregisterform.mb_email.value">
<input type="hidden" name="mb_id" value="<?php echo $member['mb_id']?$member['mb_id']:substr(uniqid(), 0, 20); ?>" id="reg_mb_id" <?php echo $required ?> <?php echo $readonly ?> class="frm_input">
</td>
</tr>
<?php }else{ ?>
<tr>
<th scope="row"><label for="reg_mb_id">아이디<strong class="sound_only">필수</strong></label></th>
<td>
<span class="frm_info">영문자, 숫자, _ 만 입력 가능. 최소 3자이상 입력하세요.</span>
<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 <?php echo $required ?> <?php echo $readonly ?>" minlength="3" maxlength="20">
<span id="msg_mb_id"></span>
</td>
</tr>
<?php }?>
...
<?php if(!isset($config['cf_login_email']) || !$config['cf_login_email']) { ?>
<tr>
<th scope="row"><label for="reg_mb_email">E-mail<strong class="sound_only">필수</strong></label></th>
<td>
<?php if ($config['cf_use_email_certify']) { ?>
<span class="frm_info">
<?php if ($w=='') { echo "E-mail 로 발송된 내용을 확인한 후 인증하셔야 회원가입이 완료됩니다."; } ?>
<?php if ($w=='u') { echo "E-mail 주소를 변경하시면 다시 인증하셔야 합니다."; } ?>
</span>
<?php } ?>
<input type="hidden" name="old_email" value="<?php echo $member['mb_email'] ?>">
<input type="text" name="mb_email" value="<?php echo isset($member['mb_email'])?$member['mb_email']:''; ?>" id="reg_mb_email" required class="frm_input email required" size="70" maxlength="100">
</td>
</tr>
<?php } ?>
...
<?php if(!isset($config['cf_login_email']) || !$config['cf_login_email']) { ?>
// 회원아이디 검사
if (f.w.value == "") {
var msg = reg_mb_id_check();
if (msg) {
alert(msg);
f.mb_id.select();
return false;
}
}
<?php } ?>
#bbs/register_form_update.php
if(!isset($config['cf_login_email']) || !$config['cf_login_email']) {
if ($msg = valid_mb_id($mb_id)) alert($msg, "", true, true);
}
#skin/member/{skinname}/register_result.skin.php
<?php if(!isset($config['cf_login_email']) || !$config['cf_login_email']) { ?>
<span>아이디</span>
<strong><?php echo $mb['mb_id'] ?></strong><br>
<?php } ?>
<span>이메일 주소</span>
<strong><?php echo $mb['mb_email'] ?></strong>
#skin/member/{skinname}/login.skin.php //login.php의 로그인
<label for="login_id" class="login_id">회원아이디<strong class="sound_only"> 필수</strong></label>
<input type="text" name="mb_id" id="login_id" required class="frm_input required"
<?php if(isset($config['cf_login_email']) && $config['cf_login_email']) { ?>
echo size='70' maxLength='100'
<?php } else { ?>
echo size='20' maxLength='20'
<?php } ?>
>
#theme/{themename}/skin/outlogin/basic/outlogin.skin.1.php //index.php의 로그인
<input type="text" id="ol_id" name="mb_id" required class="required"
<?php if(isset($config['cf_login_email']) && $config['cf_login_email']) { ?>
echo maxLength='100'
<?php }else {?>
echo maxLength='20'
<?php } ?>
>
#mobile/skin/member/{skinname}/register_result.skin.php
<?php if(!isset($config['cf_login_email']) || !$config['cf_login_email']) { ?>
<span>아이디</span>
<strong><?php echo $mb['mb_id'] ?></strong><br>
<?php } ?>
###################MOBILE########################
#mobile/skin/member/{skinname}/register_form.skin.php
<?php if(isset($config['cf_login_email']) && $config['cf_login_email']) { ?>
<tr>
<th scope="row"><label for="reg_mb_email">E-mail<strong class="sound_only">필수</strong></label></th>
<td>
<?php if ($config['cf_use_email_certify']) { ?>
<span class="frm_info">
<?php if ($w=='') { echo "E-mail 로 발송된 내용을 확인한 후 인증하셔야 회원가입이 완료됩니다."; } ?>
<?php if ($w=='u') { echo "E-mail 주소를 변경하시면 다시 인증하셔야 합니다."; } ?>
</span>
<?php } ?>
<input type="hidden" name="old_email" value="<?php echo $member['mb_email'] ?>">
<input type="email" name="mb_email" value="<?php echo isset($member['mb_email'])?$member['mb_email']:''; ?>" id="reg_mb_email" required class="frm_input email required" size="50" maxlength="100">
<input type="hidden" name="mb_id" value="<?php echo $member['mb_id']?$member['mb_id']:substr(uniqid(), 0, 20); ?>" id="reg_mb_id" <?php echo $required ?> <?php echo $readonly ?> class="frm_input">
</td>
</tr>
<?php } else { ?>
<tr>
<th scope="row"><label for="reg_mb_id">아이디<strong class="sound_only">필수</strong></label></th>
<td>
<span class="frm_info">영문자, 숫자, _ 만 입력 가능. 최소 3자이상 입력하세요.</span>
<input type="text" name="mb_id" value="<?php echo $member['mb_id'] ?>" id="reg_mb_id" class="frm_input <?php echo $required ?> <?php echo $readonly ?>" minlength="3" maxlength="20" <?php echo $required ?> <?php echo $readonly ?>>
<span id="msg_mb_id"></span>
</td>
</tr>
<?php } ?>
...
<?php if(!isset($config['cf_login_email']) || !$config['cf_login_email']) { ?>
<tr>
<th scope="row"><label for="reg_mb_email">E-mail<strong class="sound_only">필수</strong></label></th>
<td>
<?php if ($config['cf_use_email_certify']) { ?>
<span class="frm_info">
<?php if ($w=='') { echo "E-mail 로 발송된 내용을 확인한 후 인증하셔야 회원가입이 완료됩니다."; } ?>
<?php if ($w=='u') { echo "E-mail 주소를 변경하시면 다시 인증하셔야 합니다."; } ?>
</span>
<?php } ?>
<input type="hidden" name="old_email" value="<?php echo $member['mb_email'] ?>">
<input type="email" name="mb_email" value="<?php echo isset($member['mb_email'])?$member['mb_email']:''; ?>" id="reg_mb_email" required class="frm_input email required" size="50" maxlength="100">
</td>
</tr>
<?php } ?>
<?php if ($config['cf_use_homepage']) { ?>
#mobile/skin/member/{skinname}/login.skin.php
<input type="password" name="mb_password" id="login_pw" placeholder="비밀번호(필수)" required class="frm_input required"
<?php if(isset($config['cf_login_email']) && $config['cf_login_email']) { ?>
echo size='70' maxLength='100'
<?php } else { ?>
echo size='20' maxLength='20'
<?php } ?>
#theme/{themename}/mobile/skin/outlogin/basic/outlogin.skin.1.php //index.php의 로그인
<input type="text" id="ol_id" name="mb_id" required class="required"
<?php if(isset($config['cf_login_email']) && $config['cf_login_email']) { ?>
echo maxLength='100'
<?php } else { ?>
echo maxLength='20'
<?php } ?>
>
DB건드리기가 귀찮아서 ID는 uniqid()에서 20자리만 취함(중복되서 오류나면 다시 하겠지..)
처음에 id를 email과 동일하게 늘리고 email을 id에 복사했는데 id를 쓰는 다른테이블도 있는것 같아서 걍 놔둠
로그인할때 get_member_by_email추가해서 처리함
#config_form.php#
<tr>
<th scope="row"><label for="cf_privacy">개인정보처리방침</label></th>
<td colspan="3"><textarea id="cf_privacy" name="cf_privacy" rows="10"><?php echo $config['cf_privacy'] ?></textarea></td>
</tr>
<!-- BEGIN LOGIN_EMAIL -->
<tr>
<th scope="row"><label for="cf_login_email">이메일 로그인</label></th>
<td colspan="3"><input type="checkbox" name="cf_login_email value="1" id="cf_login_email" <?php echo $config['cf_login_email']?'checked':''; ?>> <label for="cf_login_email">사용</label></td>
</tr>
<!-- END LOGIN_EMAIL -->
//LOGIN_EMAIL
if(!isset($config['cf_login_email'])) {
sql_query(" ALTER TABLE `{$g5['config_table']}`
ADD `cf_login_email` tinyint(4) NOT NULL DEFAULT '0' AFTER `cf_privacy` ", true);
}
#config_form_update.php#
$sql = " update {$g5['config_table']}
...
cf_privacy = '{$_POST['cf_privacy']}',
cf_login_email = '{$_POST['cf_login_email']}',
#lib/common.lib.php
function get_member($mb_id, $fields='*')
{
...
}
// 이메일로 회원 정보를 얻는다.
function get_member_by_email($mb_id, $fields='*')
{
global $g5;
return sql_fetch(" select $fields from {$g5['member_table']} where mb_email = TRIM('$mb_id') limit 1");
}
#bbs/login_check.php
if(!isset($config['cf_login_email']) || !$config['cf_login_email']) {
$mb = get_member($mb_id);
}
else
$mb = get_member_by_email($mb_id);
#bbs/password_lost2.php
삭제
$content .= '<span style="display:inline-block;width:100px">회원아이디</span> '.$mb['mb_id'].'<br>';
#skin/member/{skinname}/register_form.skin.php
<?php if(isset($config['cf_login_email']) && $config['cf_login_email']) { ?>
<tr>
<th scope="row"><label for="reg_mb_email">E-mail<strong class="sound_only">필수</strong></label></th>
<td>
<?php if ($config['cf_use_email_certify']) { ?>
<span class="frm_info">
<?php if ($w=='') { echo "E-mail 로 발송된 내용을 확인한 후 인증하셔야 회원가입이 완료됩니다."; } ?>
<?php if ($w=='u') { echo "E-mail 주소를 변경하시면 다시 인증하셔야 합니다."; } ?>
</span>
<?php } ?>
<input type="hidden" name="old_email" value="<?php echo $member['mb_email'] ?>">
<input type="text" name="mb_email" value="<?php echo isset($member['mb_email'])?$member['mb_email']:''; ?>"
id="reg_mb_email" required class="frm_input email required" size="70" maxlength="100"
onblur="document.fregisterform.mb_id.value = document.fregisterform.mb_email.value">
<input type="hidden" name="mb_id" value="<?php echo $member['mb_id']?$member['mb_id']:substr(uniqid(), 0, 20); ?>" id="reg_mb_id" <?php echo $required ?> <?php echo $readonly ?> class="frm_input">
</td>
</tr>
<?php }else{ ?>
<tr>
<th scope="row"><label for="reg_mb_id">아이디<strong class="sound_only">필수</strong></label></th>
<td>
<span class="frm_info">영문자, 숫자, _ 만 입력 가능. 최소 3자이상 입력하세요.</span>
<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 <?php echo $required ?> <?php echo $readonly ?>" minlength="3" maxlength="20">
<span id="msg_mb_id"></span>
</td>
</tr>
<?php }?>
...
<?php if(!isset($config['cf_login_email']) || !$config['cf_login_email']) { ?>
<tr>
<th scope="row"><label for="reg_mb_email">E-mail<strong class="sound_only">필수</strong></label></th>
<td>
<?php if ($config['cf_use_email_certify']) { ?>
<span class="frm_info">
<?php if ($w=='') { echo "E-mail 로 발송된 내용을 확인한 후 인증하셔야 회원가입이 완료됩니다."; } ?>
<?php if ($w=='u') { echo "E-mail 주소를 변경하시면 다시 인증하셔야 합니다."; } ?>
</span>
<?php } ?>
<input type="hidden" name="old_email" value="<?php echo $member['mb_email'] ?>">
<input type="text" name="mb_email" value="<?php echo isset($member['mb_email'])?$member['mb_email']:''; ?>" id="reg_mb_email" required class="frm_input email required" size="70" maxlength="100">
</td>
</tr>
<?php } ?>
...
<?php if(!isset($config['cf_login_email']) || !$config['cf_login_email']) { ?>
// 회원아이디 검사
if (f.w.value == "") {
var msg = reg_mb_id_check();
if (msg) {
alert(msg);
f.mb_id.select();
return false;
}
}
<?php } ?>
#bbs/register_form_update.php
if(!isset($config['cf_login_email']) || !$config['cf_login_email']) {
if ($msg = valid_mb_id($mb_id)) alert($msg, "", true, true);
}
#skin/member/{skinname}/register_result.skin.php
<?php if(!isset($config['cf_login_email']) || !$config['cf_login_email']) { ?>
<span>아이디</span>
<strong><?php echo $mb['mb_id'] ?></strong><br>
<?php } ?>
<span>이메일 주소</span>
<strong><?php echo $mb['mb_email'] ?></strong>
#skin/member/{skinname}/login.skin.php //login.php의 로그인
<label for="login_id" class="login_id">회원아이디<strong class="sound_only"> 필수</strong></label>
<input type="text" name="mb_id" id="login_id" required class="frm_input required"
<?php if(isset($config['cf_login_email']) && $config['cf_login_email']) { ?>
echo size='70' maxLength='100'
<?php } else { ?>
echo size='20' maxLength='20'
<?php } ?>
>
#theme/{themename}/skin/outlogin/basic/outlogin.skin.1.php //index.php의 로그인
<input type="text" id="ol_id" name="mb_id" required class="required"
<?php if(isset($config['cf_login_email']) && $config['cf_login_email']) { ?>
echo maxLength='100'
<?php }else {?>
echo maxLength='20'
<?php } ?>
>
#mobile/skin/member/{skinname}/register_result.skin.php
<?php if(!isset($config['cf_login_email']) || !$config['cf_login_email']) { ?>
<span>아이디</span>
<strong><?php echo $mb['mb_id'] ?></strong><br>
<?php } ?>
###################MOBILE########################
#mobile/skin/member/{skinname}/register_form.skin.php
<?php if(isset($config['cf_login_email']) && $config['cf_login_email']) { ?>
<tr>
<th scope="row"><label for="reg_mb_email">E-mail<strong class="sound_only">필수</strong></label></th>
<td>
<?php if ($config['cf_use_email_certify']) { ?>
<span class="frm_info">
<?php if ($w=='') { echo "E-mail 로 발송된 내용을 확인한 후 인증하셔야 회원가입이 완료됩니다."; } ?>
<?php if ($w=='u') { echo "E-mail 주소를 변경하시면 다시 인증하셔야 합니다."; } ?>
</span>
<?php } ?>
<input type="hidden" name="old_email" value="<?php echo $member['mb_email'] ?>">
<input type="email" name="mb_email" value="<?php echo isset($member['mb_email'])?$member['mb_email']:''; ?>" id="reg_mb_email" required class="frm_input email required" size="50" maxlength="100">
<input type="hidden" name="mb_id" value="<?php echo $member['mb_id']?$member['mb_id']:substr(uniqid(), 0, 20); ?>" id="reg_mb_id" <?php echo $required ?> <?php echo $readonly ?> class="frm_input">
</td>
</tr>
<?php } else { ?>
<tr>
<th scope="row"><label for="reg_mb_id">아이디<strong class="sound_only">필수</strong></label></th>
<td>
<span class="frm_info">영문자, 숫자, _ 만 입력 가능. 최소 3자이상 입력하세요.</span>
<input type="text" name="mb_id" value="<?php echo $member['mb_id'] ?>" id="reg_mb_id" class="frm_input <?php echo $required ?> <?php echo $readonly ?>" minlength="3" maxlength="20" <?php echo $required ?> <?php echo $readonly ?>>
<span id="msg_mb_id"></span>
</td>
</tr>
<?php } ?>
...
<?php if(!isset($config['cf_login_email']) || !$config['cf_login_email']) { ?>
<tr>
<th scope="row"><label for="reg_mb_email">E-mail<strong class="sound_only">필수</strong></label></th>
<td>
<?php if ($config['cf_use_email_certify']) { ?>
<span class="frm_info">
<?php if ($w=='') { echo "E-mail 로 발송된 내용을 확인한 후 인증하셔야 회원가입이 완료됩니다."; } ?>
<?php if ($w=='u') { echo "E-mail 주소를 변경하시면 다시 인증하셔야 합니다."; } ?>
</span>
<?php } ?>
<input type="hidden" name="old_email" value="<?php echo $member['mb_email'] ?>">
<input type="email" name="mb_email" value="<?php echo isset($member['mb_email'])?$member['mb_email']:''; ?>" id="reg_mb_email" required class="frm_input email required" size="50" maxlength="100">
</td>
</tr>
<?php } ?>
<?php if ($config['cf_use_homepage']) { ?>
#mobile/skin/member/{skinname}/login.skin.php
<input type="password" name="mb_password" id="login_pw" placeholder="비밀번호(필수)" required class="frm_input required"
<?php if(isset($config['cf_login_email']) && $config['cf_login_email']) { ?>
echo size='70' maxLength='100'
<?php } else { ?>
echo size='20' maxLength='20'
<?php } ?>
#theme/{themename}/mobile/skin/outlogin/basic/outlogin.skin.1.php //index.php의 로그인
<input type="text" id="ol_id" name="mb_id" required class="required"
<?php if(isset($config['cf_login_email']) && $config['cf_login_email']) { ?>
echo maxLength='100'
<?php } else { ?>
echo maxLength='20'
<?php } ?>
>
추천
0
0
댓글 2개
좋은팁 이네요 ㅎㅎ 하지만 좀더 편리하게 bbs/login_check.php 만 손보면 \ 이메일 로그인 / 일반로그인 둘다 사용 가능합니다. ㅎㅎ
gmail.com의 경우 이상하게 본인의 글인경우에도 글 수정이 않나탄나는 현상이 생기는것 같더라구요 ㅠ