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

로그인 시 이전페이지로 가기 채택완료

굼떠 3년 전 조회 1,971

그누보드 영카트 사용중입니다.

게시글 작성 시 로그인 후 이용하세요 라고 로그인 페이지로 이동해서 로그인 하고 나면 인덱스 페이지로 가고, 상품 상세페이지에서 로그인 하면 다시 메인으로 가는게 소비자 입장에선 상당히 불편하더라고요.

 

방법이 없을까요?

 

</p>

<p>// login.skin.php</p>

<p><?php

if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가</p>

<p>// add_stylesheet('css 구문', 출력순서); 숫자가 작을 수록 먼저 출력됨

add_stylesheet('<link rel="stylesheet" href="'.$member_skin_url.'/style.css">', 0);

?></p>

<p><!-- 로그인 시작 { -->

<div id="mb_login" class="mbskin">

    <div class="mbskin_box">

        <h1>login</h1>

        <span class="login_txt">스피아에 방문해주셔서 감사합니다.</span>

        <form name="flogin" action="<?php echo $login_action_url ?>" onsubmit="return flogin_submit(this);" method="post">

        <input type="hidden" name="url" value="<?php echo $login_url ?>"></p>

<p>        <fieldset id="login_fs">

            <legend>회원로그인</legend>

            <label for="login_id" class="sound_only">회원아이디<strong class="sound_only"> 필수</strong></label>

            <input type="text" name="mb_id" id="login_id" required class="frm_input required" size="20" maxLength="20" placeholder="아이디">

            <label for="login_pw" class="sound_only">비밀번호<strong class="sound_only"> 필수</strong></label>

            <input type="password" name="mb_password" id="login_pw" required class="frm_input required" size="20" maxLength="20" placeholder="비밀번호">

            <button type="submit" class="btn_submit">login</button></p>

<p>            <div id="login_info">

                <div class="login_if_auto chk_box">

                    <input type="checkbox" name="auto_login" id="login_auto_login" class="selec_chk">

                    <label for="login_auto_login"><span></span> 자동로그인</label>

                </div>

                <div class="login_if_lpl">

                    <a href="<?php echo G5_BBS_URL ?>/password_lost.php" target="_blank" id="login_password_lost">아이디/비밀번호 찾기</a>

                </div>

            </div>

        </fieldset>

        </form>

        <div class="join">

            <span>아직 스피아의 회원이 아니신가요?</span>

            <a href="<?php echo G5_BBS_URL ?>/register.php" class="join">회원가입 <i class="xi-long-arrow-right"></i></a>

        </div>

        <?php @include_once(get_social_skin_path().'/social_login.skin.php'); // 소셜로그인 사용시 소셜로그인 버튼 ?>

    </div>

</div></p>

<p><script>

jQuery(function($){

    $("#login_auto_login").click(function(){

        if (this.checked) {

            this.checked = confirm("자동로그인을 사용하시면 다음부터 회원아이디와 비밀번호를 입력하실 필요가 없습니다.\n\n공공장소에서는 개인정보가 유출될 수 있으니 사용을 자제하여 주십시오.\n\n자동로그인을 사용하시겠습니까?");

        }

    });

});</p>

<p>function flogin_submit(f)

{

    if( $( document.body ).triggerHandler( 'login_sumit', [f, 'flogin'] ) !== false ){

        return true;

    }

    return false;

}

</script>

<!-- } 로그인 끝 -->

 </p>

<p>

 

</p>

<p>//bbs/login.check.php</p>

<p><?php

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

<p>$g5['title'] = "로그인 검사";</p>

<p>$mb_id       = isset($_POST['mb_id']) ? trim($_POST['mb_id']) : '';

$mb_password = isset($_POST['mb_password']) ? trim($_POST['mb_password']) : '';</p>

<p>run_event('member_login_check_before', $mb_id);</p>

<p>if (!$mb_id || !$mb_password)

    alert('회원아이디나 비밀번호가 공백이면 안됩니다.');</p>

<p>$mb = get_member($mb_id);</p>

<p>//소셜 로그인추가 체크</p>

<p>$is_social_login = false;

$is_social_password_check = false;</p>

<p>// 소셜 로그인이 맞는지 체크하고 해당 값이 맞는지 체크합니다.

if(function_exists('social_is_login_check')){

    $is_social_login = social_is_login_check();</p>

<p>    //패스워드를 체크할건지 결정합니다.

    //소셜로그인일때는 체크하지 않고, 계정을 연결할때는 체크합니다.

    $is_social_password_check = social_is_login_password_check($mb_id);

}</p>

<p>//소셜 로그인이 맞다면 패스워드를 체크하지 않습니다.

// 가입된 회원이 아니다. 비밀번호가 틀리다. 라는 메세지를 따로 보여주지 않는 이유는

// 회원아이디를 입력해 보고 맞으면 또 비밀번호를 입력해보는 경우를 방지하기 위해서입니다.

// 불법사용자의 경우 회원아이디가 틀린지, 비밀번호가 틀린지를 알기까지는 많은 시간이 소요되기 때문입니다.

if (!$is_social_password_check && (! (isset($mb['mb_id']) && $mb['mb_id']) || !login_password_check($mb, $mb_password, $mb['mb_password'])) ) {</p>

<p>    run_event('password_is_wrong', 'login', $mb);</p>

<p>    alert('가입된 회원아이디가 아니거나 비밀번호가 틀립니다.\\n비밀번호는 대소문자를 구분합니다.');

}</p>

<p>// 차단된 아이디인가?

if ($mb['mb_intercept_date'] && $mb['mb_intercept_date'] <= date("Ymd", G5_SERVER_TIME)) {

    $date = preg_replace("/([0-9]{4})([0-9]{2})([0-9]{2})/", "\\1년 \\2월 \\3일", $mb['mb_intercept_date']);

    alert('회원님의 아이디는 접근이 금지되어 있습니다.\n처리일 : '.$date);

}</p>

<p>// 탈퇴한 아이디인가?

if ($mb['mb_leave_date'] && $mb['mb_leave_date'] <= date("Ymd", G5_SERVER_TIME)) {

    $date = preg_replace("/([0-9]{4})([0-9]{2})([0-9]{2})/", "\\1년 \\2월 \\3일", $mb['mb_leave_date']);

    alert('탈퇴한 아이디이므로 접근하실 수 없습니다.\n탈퇴일 : '.$date);

}</p>

<p>// 메일인증 설정이 되어 있다면

if ( is_use_email_certify() && !preg_match("/[1-9]/", $mb['mb_email_certify'])) {

    $ckey = md5($mb['mb_ip'].$mb['mb_datetime']);

    confirm("{$mb['mb_email']} 메일로 메일인증을 받으셔야 로그인 가능합니다. 다른 메일주소로 변경하여 인증하시려면 취소를 클릭하시기 바랍니다.", G5_URL, G5_BBS_URL.'/register_email.php?mb_id='.$mb_id.'&ckey='.$ckey);

}</p>

<p>run_event('login_session_before', $mb, $is_social_login);</p>

<p>@include_once($member_skin_path.'/login_check.skin.php');</p>

<p>// 회원아이디 세션 생성

set_session('ss_mb_id', $mb['mb_id']);

// FLASH XSS 공격에 대응하기 위하여 회원의 고유키를 생성해 놓는다. 관리자에서 검사함 - 110106

set_session('ss_mb_key', md5($mb['mb_datetime'] . get_real_client_ip() . $_SERVER['HTTP_USER_AGENT']));</p>

<p>// 포인트 체크

if($config['cf_use_point']) {

    $sum_point = get_point_sum($mb['mb_id']);</p>

<p>    $sql= " update {$g5['member_table']} set mb_point = '$sum_point' where mb_id = '{$mb['mb_id']}' ";

    sql_query($sql);

}</p>

<p>// 3.26

// 아이디 쿠키에 한달간 저장

if (isset($auto_login) && $auto_login) {

    // 3.27

    // 자동로그인 ---------------------------

    // 쿠키 한달간 저장

    $key = md5($_SERVER['SERVER_ADDR'] . $_SERVER['SERVER_SOFTWARE'] . $_SERVER['HTTP_USER_AGENT'] . $mb['mb_password']);

    set_cookie('ck_mb_id', $mb['mb_id'], 86400 * 31);

    set_cookie('ck_auto', $key, 86400 * 31);

    // 자동로그인 end ---------------------------

} else {

    set_cookie('ck_mb_id', '', 0);

    set_cookie('ck_auto', '', 0);

}</p>

<p>if ($url) {

    // url 체크

    check_url_host($url, '', G5_URL, true);</p>

<p>    $link = urldecode($url);

    // 2003-06-14 추가 (다른 변수들을 넘겨주기 위함)

    if (preg_match("/\?/", $link))

        $split= "&";

    else

        $split= "?";</p>

<p>    // $_POST 배열변수에서 아래의 이름을 가지지 않은 것만 넘김

    $post_check_keys = array('mb_id', 'mb_password', 'x', 'y', 'url');</p>

<p>    //소셜 로그인 추가

    if($is_social_login){

        $post_check_keys[] = 'provider';

    }</p>

<p>    $post_check_keys = run_replace('login_check_post_check_keys', $post_check_keys, $link, $is_social_login);</p>

<p>    foreach($_POST as $key=>$value) {

        if ($key && !in_array($key, $post_check_keys)) {

            $link .= "$split$key=$value";

            $split = "&";

        }

    }</p>

<p>} else  {

    $link = G5_URL;

}</p>

<p>//소셜 로그인 추가

if(function_exists('social_login_success_after')){

    // 로그인 성공시 소셜 데이터를 기존의 데이터와 비교하여 바뀐 부분이 있으면 업데이트 합니다.

    $link = social_login_success_after($mb, $link);

    social_login_session_clear(1);

}</p>

<p>run_event('member_login_check', $mb, $link, $is_social_login);</p>

<p>// 관리자로 로그인시 DATA 폴더의 쓰기 권한이 있는지 체크합니다. 쓰기 권한이 없으면 로그인을 못합니다.

if( is_admin($mb['mb_id']) && is_dir(G5_DATA_PATH.'/tmp/') ){

    $tmp_data_file = G5_DATA_PATH.'/tmp/tmp-write-test-'.time();

    $tmp_data_check = @fopen($tmp_data_file, 'w');

    if($tmp_data_check){

        if(! @fwrite($tmp_data_check, G5_URL)){

            $tmp_data_check = false;

        }

    }

    @fclose($tmp_data_check);

    @unlink($tmp_data_file);</p>

<p>    if(! $tmp_data_check){

        alert("data 폴더에 쓰기권한이 없거나 또는 웹하드 용량이 없는 경우\\n로그인을 못할수도 있으니, 용량 체크 및 쓰기 권한을 확인해 주세요.", $link);

    }

}</p>

<p>goto_url($link);

 </p>

<p>

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

답변 1개

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

/bbs/write.php 파일을 수정하셨나 보네요,, 

원본에서는 

 alert("글을 쓸 권한이 없습니다.\\n회원이시라면 로그인 후 이용해 보십시오.", G5_BBS_URL.'/login.php?'.$qstr.'&url='.urlencode($_SERVER['SCRIPT_NAME'].'?bo_table='.$bo_table));

 

이부분으로, login.php 뒤 url= 이 부분으로 로그인 후 이동 되도록 되어 있습니다.

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

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

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

로그인