테스트 사이트 - 개발 중인 베타 버전입니다

회원가입 완료 페이지는 뜨는데 자동 로그인이 안 되는 경우 채택완료

재미니다 1년 전 조회 1,969

안녕하세요.

정상적으로 회원가입도 되고 회원가입 완료 페이지도 잘 뜹니다만 로그인 상태가 아니라서 재로그인을 해야하는 상황입니다.

sns 계정으로 가입하면 또 정상적으로 완료 페이지에서 로그인도 되어있는데요..

sns 계정이 아닌 일반 계정으로 가입을 진행하면 위와 같은 증상이 나오네요.

 

답변주신대로 bbs/register_form_update.php 코드도 확인해 보았습니다만 아래처럼 특별한건 없었습니다.

</p>

<p>    // 메일인증 사용하지 않는 경우에만 로그인

    if (!$config['cf_use_email_certify'])

        set_session('ss_mb_id', $mb_id);

 

회원가입 폼 페이지, 완료 페이지가 sub/join_1_2.php, sub/join_1_cp.php 이렇게 되어있는 걸 보니 커스텀으로 제작된 것 같은데요.

혹시 코드에 문제가 있을까요?

파일의 코드도 첨부할게요.

 

sub/join_1_2.php (회원가입 폼 페이지)

</p>

<p><?</p>

<p>    include_once("_common.php");</p>

<p>    include_once(G5_PATH."/_head.php");</p>

<p>   </p>

<p> </p>

<p>    $has_prf = false;</p>

<p>    if ($w == 'u' && is_file(G5_DATA_PATH.'/member_image/'.substr($member['mb_id'], 0, 2).'/'.get_mb_icon_name($member['mb_id']).'.gif')) {</p>

<p>        $has_prf = true;</p>

<p>    }</p>

<p>?></p>

<p> </p>

<p><form action="<?=G5_URL?>/sub/join.sql.php" method="post" id="frm" name="frm" onsubmit="return fnSubmit_reg(this);" enctype="multipart/form-data"></p>

<p><input type="hidden" id="w" name="w" value="<?=$w?>"></p>

<p><input type="hidden" id="idchk" value="<?if($w == ''){ echo "n"; } else if($w == 'u'){ echo "y"; }?>"></p>

<p><input type="hidden" id="nickchk" value="<?if($w == ''){ echo "n"; } else if($w == 'u'){ echo "y"; }?>"></p>

<p><input type="hidden" id="mb_type_num" name="mb_type_num" value="1"></p>

<p>    <div id="join_1_2"></p>

<p>        <div class="res_basic"></p>

<p>            <ul class="res_list"></p>

<p>                <li></p>

<p>                    <div class="res_tit">아이디</div></p>

<p>                    <div class="res_cont"></p>

<p>                        <?if($w == ''){?></p>

<p>                            <input type="text" id="mb_id" name="mb_id" value="<?=$member['mb_id']?>" maxlength="20"></p>

<p>                            <button type="button" class="ab" onclick="fnChkText('id');">중복확인</button></p>

<p>                        <?}else if($w == 'u'){?></p>

<p>                            <input type="text" name="mb_id" id="mb_id" value="<?=$member['mb_id']?>" readonly></p>

<p>                        <?}?></p>

<p>                    </div></p>

<p>                </li></p>

<p>                <li></p>

<p>                    <div class="res_tit">비밀번호</div></p>

<p>                    <div class="res_cont"></p>

<p>                        <input type="password" id="mb_password" name="mb_password" maxlength="20"></p>

<p>                    </div></p>

<p>                </li></p>

<p>                <li></p>

<p>                    <div class="res_tit">비밀번호 확인</div></p>

<p>                    <div class="res_cont"></p>

<p>                        <input type="password" id="mb_password_re" name="mb_password_re" maxlength="20"></p>

<p>                    </div></p>

<p>                </li></p>

<p>                <li></p>

<p>                    <div class="res_tit">닉네임</div></p>

<p>                    <div class="res_cont"></p>

<p>                        <?php if($w == ''){ ?></p>

<p>                            <input type="text" id="mb_nick" name="mb_nick" value="<?=$member['mb_nick']?>" maxlength="30"><!--  onchange="fnChgText(this.value, 'nick');" --></p>

<p>                            <button type="button" class="ab" onclick="fnChkText('nick');">중복확인</button></p>

<p>                        <?php }else if($w == 'u'){ ?></p>

<p>                            <input type="text" id="mb_nick" name="mb_nick" value="<?=$member['mb_nick']?>" readonly></p>

<p>                        <?php } ?></p>

<p>                    </div></p>

<p>                </li></p>

<p>                <li></p>

<p>                    <div class="res_tit">이메일</div></p>

<p>                    <div class="res_cont"></p>

<p>                        <input type="email" id="mb_email" name="mb_email" value="<?=$member['mb_email']?>" placeholder="abcd1234@abcde.co.kr" <?=($w == 'u' ? 'readonly' : '')?>></p>

<p>                    </div></p>

<p>                </li></p>

<p>                <li></p>

<p>                    <div class="res_tit">프로필 이미지 등록 <span>(미 등록 시 기본 이미지로 저장됩니다.)</span></div></p>

<p>                    <ul class="res_cont"></p>

<p>                        <li class="filebox"></p>

<p>                            <input class="upload-name" type="text" placeholder="<?php echo ($has_prf ? '등록된 이미지가 있습니다.' : ($w == 'u' ? '등록된 이미지가 없습니다.' : '프로필 이미지를 등록해주세요.')); ?>" readonly></p>

<p>                            <label for="mb_img" class="ab" style="margin-top:0;">이미지 업로드</label></p>

<p>                            <input type="file" name="mb_img" id="mb_img"></p>

<p>                        </li></p>

<p>                    </ul></p>

<p>                </li></p>

<p>            </ul></p>

<p>            <div class="btn_basic"></p>

<p>                <!-- <a class="ab" href="<?=G5_URL?>/sub/join_1_cp.php">회원가입</a> --></p>

<p>                <button class="ab"><?php echo ($w == '' ? '회원가입' : '정보수정'); ?></button></p>

<p>                <?php if($w == 'u'){ ?></p>

<p>                <a href="<?=G5_BBS_URL?>/member_confirm.php?url=member_leave.php" class="ab">회원탈퇴</a></p>

<p>                <?php } ?></p>

<p>            </div></p>

<p>        </div></p>

<p>    </div></p>

<p></form></p>

<p> </p>

<p><script></p>

<p>    $("input[type='file']").on('change',function(){</p>

<p>        if(window.FileReader){</p>

<p>            var filename = $(this)[0].files[0].name;</p>

<p>        } else {</p>

<p>            var filename = $(this).val().split('/').pop().split('\\').pop();</p>

<p>        }</p>

<p> </p>

<p>        $(this).prev().prev().val(filename);</p>

<p>    });</p>

<p> </p>

<p>    function fnChkText(type){</p>

<p>        if(type == 'id'){</p>

<p>            var vl = $("#mb_id").val();</p>

<p>            var regExp = /[^A-Za-z0-9-_]/g;</p>

<p> </p>

<p>            if(vl == ''){</p>

<p>                alert("아이디를 입력해주세요.");</p>

<p>                return false;</p>

<p>            }</p>

<p>           </p>

<p>            if(regExp.test(vl) === true){</p>

<p>                alert("아이디는 영문, 숫자, -, _만 사용하여 입력해주세요.");</p>

<p>                return false;</p>

<p>            }</p>

<p> </p>

<p>            if(vl.length < 4){</p>

<p>                alert("아이디는 4글자 이상으로 기입해주세요.");</p>

<p>                return false;</p>

<p>            }</p>

<p>        }</p>

<p> </p>

<p>        if(type == 'nick'){</p>

<p>            var vl = $("#mb_nick").val();</p>

<p>            var regExp = /[^가-힣A-Za-z0-9]/g;</p>

<p> </p>

<p>            if(vl == ''){</p>

<p>                alert("닉네임을 입력해주세요.");</p>

<p>                return false;</p>

<p>            }</p>

<p> </p>

<p>            if(regExp.test(vl) === true){</p>

<p>                alert("닉네임은 자음, 모음을 제외한 한글, 영어 및 숫자로만 입력해주세요.");</p>

<p>                return false;</p>

<p>            }</p>

<p>        }</p>

<p> </p>

<p>        $.ajax({</p>

<p>            type: "POST",</p>

<p>            url: "<?=G5_URL?>/sub/ajax.idchk.php",</p>

<p>            data: {type: type, vl: vl},</p>

<p>            cache: false,</p>

<p>            async: false,</p>

<p>            contentType: "application/x-www-form-urlencoded; UTF-8",</p>

<p>            success: function(data){</p>

<p>                if(type == 'id'){</p>

<p>                    if(data == '0000') {</p>

<p>                        alert("사용 가능한 아이디입니다.");</p>

<p>                        $("#idchk").val("y");</p>

<p>                    }else if(data == '1111') {</p>

<p>                        alert("중복된 아이디가 존재합니다.");</p>

<p>                        $("#idchk").val("n");</p>

<p>                    }</p>

<p>                }</p>

<p> </p>

<p>                if(type == 'nick'){</p>

<p>                    if(data == '0000') {</p>

<p>                        alert("사용 가능한 닉네임입니다.");</p>

<p>                        $("#nickchk").val("y");</p>

<p>                    }else if(data == '1111') {</p>

<p>                        alert("중복된 닉네임이 존재합니다.");</p>

<p>                        $("#nickchk").val("n");</p>

<p>                    }</p>

<p>                }</p>

<p>            }</p>

<p>        });</p>

<p>        return false;</p>

<p>    }</p>

<p>   </p>

<p>    function fnSubmit_reg(f){</p>

<p>        if($("#w").val() == ''){</p>

<p>            if($("#mb_id").val().length < 4){</p>

<p>                alert("아이디는 4글자 이상으로 기입해주세요.");</p>

<p>                $("#mb_id").focus();</p>

<p>                return false;</p>

<p>            }</p>

<p> </p>

<p>            if($("#idchk").val() == 'n') {</p>

<p>                alert("아이디 중복검사 작업을 완료해주세요.");</p>

<p>                $("#mb_id").focus();</p>

<p>                return false;</p>

<p>            }</p>

<p>        }</p>

<p> </p>

<p>        if($("#w").val() == ''){</p>

<p>            if($("#mb_password").val().length < 4){</p>

<p>                alert("비밀번호는 최소 4자가 필요합니다.");</p>

<p>                $("#mb_password").focus();</p>

<p>                return false;</p>

<p>            }else{</p>

<p>                if($("#mb_password").val() != $("#mb_password_re").val() ) {</p>

<p>                    alert("비밀번호가 동일하지 않습니다.");</p>

<p>                    $("#mb_password_re").focus();</p>

<p>                    return false;</p>

<p>                }</p>

<p>            }</p>

<p>        }else if($("#w").val() == 'u'){</p>

<p>            if($("#mb_password").val() != ''){</p>

<p>                if($("#mb_password").val().length < 4){</p>

<p>                    alert("비밀번호는 최소 4자가 필요합니다.");</p>

<p>                    $("#mb_password").focus();</p>

<p>                    return false;</p>

<p>                }else{</p>

<p>                    if($("#mb_password").val() != $("#mb_password_re").val() ) {</p>

<p>                        alert("비밀번호가 동일하지 않습니다.");</p>

<p>                        $("#mb_password_re").focus();</p>

<p>                        return false;</p>

<p>                    }</p>

<p>                }</p>

<p>            }</p>

<p>        }</p>

<p> </p>

<p>        if($("#nickchk").val() == 'n') {</p>

<p>            alert("닉네임 인증 작업을 완료해주세요.");</p>

<p>            $("#mb_nick").focus();</p>

<p>            return false;</p>

<p>        }</p>

<p> </p>

<p>        if($("#mb_email").val() == ''){</p>

<p>            alert("이메일을 기입해주세요.");</p>

<p>            $("#mb_email").focus();</p>

<p>            return false;</p>

<p>        }</p>

<p> </p>

<p>        return true;</p>

<p>    }</p>

<p></script></p>

<p> </p>

<p><?</p>

<p>    include_once(G5_PATH."/_tail.php");</p>

<p>?></p>

<p>

 

sub/join_1_cp.php (회원가입 완료 페이지)

</p>

<p><?</p>

<p>    include_once("_common.php");</p>

<p>    include_once(G5_PATH."/_head.php");</p>

<p>?></p>

<p> </p>

<p><div id="join_1_cp"></p>

<p>    <div class="complete_box"></p>

<p>        <div class="thum"><img src="<?=G5_THEME_IMG_URL?>/icon_ok.svg" alt=""></div></p>

<p>        <div class="tit"><b>일반 회원가입</b>이 
완료되었습니다.</div></p>

<p>        <div class="desc">지금 바로 
다양한 서비스를 경험해 보세요!</div></p>

<p>        <div class="btn_basic sml bd"><a href="<?=G5_URL?>" class="ab">홈으로</a></div></p>

<p>    </div></p>

<p></div></p>

<p> </p>

<p><?</p>

<p>    include_once(G5_PATH."/_tail.php");</p>

<p>?></p>

<p>

 

고수분들의 답변을 기다립니다.

댓글을 작성하려면 로그인이 필요합니다.

답변 3개

채택된 답변
+20 포인트
1년 전

bbs/register_form_update.php 에서

    // 메일인증 사용하지 않는 경우에만 로그인
    if (!$config['cf_use_email_certify']) {
        set_session('ss_mb_id', $mb_id);
        if(function_exists('update_auth_session_token')) update_auth_session_token(G5_TIME_YMDHIS);//<---이 코드가 있는지 확인 해서 있다면 

sub/join.sql.php에서 set_session('ss_mb_id', $mb_id); 다음에 넣어주세요

예전 버젼에는 없는 코드이나 원본 코드에 이것이 있다면 로그인 안 된 것으로 나옵니다
    }

로그인 후 평가할 수 있습니다

답변에 대한 댓글 3개

재미니다
1년 전
균이님 댓글 감사드립니다.
확인해보니 bbs/register_form_update.php 파일에는

// 메일인증 사용하지 않는 경우에만 로그인
if (!$config['cf_use_email_certify']) {
set_session('ss_mb_id', $mb_id);
if(function_exists('update_auth_session_token')) update_auth_session_token(G5_TIME_YMDHIS);//<---

이 코드가 확인됐으며 코드를 복사해서
sub/join.sql.php 내부에 아래처럼 붙여 넣었습니다만 증상은 동일하네요..ㅠㅠ

[code]
$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_email = '{$mb_email}'
, mb_type = '{$mb_type}'
, mb_datetime = now()
{$add_query}
";
sql_query($sql);

insert_point($mb_id, $config['cf_register_point'], '회원가입 축하', '@member', $mb_id, '회원가입');

set_session('ss_mb_id', $mb_id);


if (!$config['cf_use_email_certify']) {
set_session('ss_mb_id', $mb_id);
if(function_exists('update_auth_session_token')) update_auth_session_token(G5_TIME_YMDHIS);
}


$mb = get_member($mb_id);

$notemsg = "";
switch($mb['mb_level']){
case 2:
$notemsg = '[일반 회원가입] '.$mb['mb_nick'].'('.$mb['mb_id'].')';
break;
case 3:
$notemsg = '[업체 회원가입] <'.$mb['mb_3'].'> '.$mb['mb_nick'].'('.$mb['mb_id'].')';
break;
}
[/code]
균이
1년 전
, mb_datetime = now() <===이것을 다음처럼 

, mb_datetime = '".G5_TIME_YMDHIS."'
재미니다
1년 전
균이님!!!
알려주신대로 하니까 너무 잘 됩니다!!!
일주일 동안 혼자 이것저것 다 해봤는데 너무 너무 감사드립니다ㅜㅜ
다시 한 번 감사드려요^^

댓글을 작성하려면 로그인이 필요합니다.

cuwaaang
1년 전

로그인 세션 처리가 빠진게아닐지?

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

재미니다
1년 전
cuwaaang님! 댓글 감사합니다!
로그인 세션 처리하는 부분이 어디일까요?
제가 웹 쪽으로는 많이 몰라서요..
예제라도 알려주시면 조금 더 공부해보겠습니다!

댓글을 작성하려면 로그인이 필요합니다.

1년 전

이전 질문과 똑같으신거 같은데 

sub/join.sql.php 를 살펴보라고 전에도 조언을 드렸던거 같습니다. 그누페이지로 가는게 아닌 해당 페이지로 완료페이지가 갑니다.
로그인 후 평가할 수 있습니다

답변에 대한 댓글 2개

재미니다
1년 전
블랙캣77님 다시 한 번 댓글에 대한 감사의 말씀을 드립니다.
이전에 달아주신 댓글에서 위 파일을 확인해 보라고 말씀해주셨었는데요.
어느 부분을 어떻게 봐야할지 잘 몰라서 대댓글에 설명과 해당 파일의 코드 전체를 올려드렸는데
답이 없으셔서 다시 질문글을 등록하게 되었습니다.
재미니다
1년 전
시간 괜찮으시다면 다시 한 번 설명 좀 부탁 드려도 될까요?
sub/join.sql.php 코드 첨부합니다!
[code]
<?
include_once("_common.php");

if($_SERVER['HTTP_REFERER'] == '') exit("잘못된 접근입니다.");

if($is_admin){
alert("관리자 계정은 관리자페이지에서 수정해주세요.");
}

$mb_hp = hyphen_hp_number($mb_hp);
$mb_birth = $mb_birth_year."-".$mb_birth_month."-".$mb_birth_day;
$add_query = "";

if($mb_type_num == '2'){
$add_query .= " , mb_zip1 = '".substr(trim($mb_zip), 0, 3)."' ";
$add_query .= " , mb_zip2 = '".substr(trim($mb_zip), 3)."' ";
$add_query .= " , mb_addr1 = '{$mb_addr1}' ";
$add_query .= " , mb_addr2 = '{$mb_addr2}' ";
$add_query .= " , mb_hp = '{$mb_hp}' ";
$add_query .= " , mb_1 = '{$mb_1}' ";
$add_query .= " , mb_2 = '{$mb_2}' ";
$add_query .= " , mb_3 = '{$mb_3}' ";
}


$image_regex = "/(\.(gif|jpe?g|png))$/i";
$mb_icon_img = get_mb_icon_name($mb_id).'.gif';


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);
@mkdir($mb_tmp_dir, G5_DIR_PERMISSION);
@chmod($mb_tmp_dir, G5_DIR_PERMISSION);

$mb_img = '';
$msg = '';
if (isset($_FILES['mb_img']) && is_uploaded_file($_FILES['mb_img']['tmp_name'])) {
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) {
$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($msg){
alert($msg);
}
}

if($w == '') {
$sql = " select count(*) as cnt from {$g5['member_table']} where mb_id = '{$mb_id}' ";
$row_id = sql_fetch($sql);

if($row_id['cnt'] > 0) {
alert("이미 존재하는 아이디입니다.");
}

if($mb_type_num == '2'){
//$add_query .= " , st_tp = '0' ";

$sql = " select count(*) as cnt from {$g5['member_table']} where mb_hp = '{$mb_hp}' ";
$row_hp = sql_fetch($sql);

if($row_hp['cnt'] > 0) {
alert("이미 존재하는 핸드폰 번호입니다.");
}
}

if($mb_type_num == '1'){
$add_query .= " , mb_level = '2' ";
}else if($mb_type_num == '2'){
$add_query .= " , mb_level = '3' ";
}

$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_email = '{$mb_email}'
, mb_type = '{$mb_type}'
, mb_datetime = now()
{$add_query}
";
sql_query($sql);
insert_point($mb_id, $config['cf_register_point'], '회원가입 축하', '@member', $mb_id, '회원가입');
set_session('ss_mb_id', $mb_id);
$mb = get_member($mb_id);
$notemsg = "";
switch($mb['mb_level']){
case 2:
$notemsg = '[일반 회원가입] '.$mb['mb_nick'].'('.$mb['mb_id'].')';
break;
case 3:
$notemsg = '[업체 회원가입] <'.$mb['mb_3'].'> '.$mb['mb_nick'].'('.$mb['mb_id'].')';
break;
}
fnTelegramNotice($notemsg);
goto_url(G5_URL."/sub/join_".$mb_type_num."_cp.php");
}
if($w == 'u') {
if($mb_password) {
$add_query .= " , mb_password = '".get_encrypt_string($mb_password)."' ";
}
$sql = " update {$g5['member_table']}
set mb_name = '{$mb_name}'
, mb_nick = '{$mb_nick}'
, mb_email = '{$mb_email}'
{$add_query}
where mb_id = '{$mb_id}'
";
sql_query($sql);
fnTelegramNotice("[회원정보 수정] ".$member['mb_nick']."(".$member['mb_id'].")");
goto_url(G5_URL."/sub/join_".$mb_type_num."_2.php?w=u");
}
?>
[/code]

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인