로그인 시 이전페이지로 가기 채택완료
그누보드 영카트 사용중입니다.
게시글 작성 시 로그인 후 이용하세요 라고 로그인 페이지로 이동해서 로그인 하고 나면 인덱스 페이지로 가고, 상품 상세페이지에서 로그인 하면 다시 메인으로 가는게 소비자 입장에선 상당히 불편하더라고요.
방법이 없을까요?
</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 포인트
myzone
3년 전
/bbs/write.php 파일을 수정하셨나 보네요,,
원본에서는
alert("글을 쓸 권한이 없습니다.\\n회원이시라면 로그인 후 이용해 보십시오.", G5_BBS_URL.'/login.php?'.$qstr.'&url='.urlencode($_SERVER['SCRIPT_NAME'].'?bo_table='.$bo_table));
이부분으로, login.php 뒤 url= 이 부분으로 로그인 후 이동 되도록 되어 있습니다.
로그인 후 평가할 수 있습니다
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인전체 질문 목록
답변대기
답변대기
답변대기
답변대기
답변대기
답변대기
답변대기
답변대기
채택
답변대기
답변대기
답변대기
답변대기
채택
채택
답변대기
답변대기
답변대기
채택