미채택 완료

로그인 관련해서 다시 질문 드릴께요

2016-06-06 (월) 17:01:40 3,499

그누보드5 theme 기본 스킨을 사용하고 있습니다.

메인페이지 접속시 아웃로그인 화면처럼 로그인 폼만 보이게 하고 로그인 체크 후

새로운 페이지에 원래 그누보드가 보여지는 내용을 보여주게 하고 싶은데 잘 안되네요...ㅠㅠ

로그인체크 후 이동하는 경로설정에서가 아무래도 막히는 것 같은데 어떻게 해야 할 지 모르겠어요

혹시 몰라 소스를 올려드릴테니 고수님들 도와주세요

1. head.php

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

if (G5_IS_MOBILE) {
    include_once(G5_THEME_MOBILE_PATH.'/head.php');
    return;
}

include_once(G5_THEME_PATH.'/head.sub.php');
include_once(G5_LIB_PATH.'/latest.lib.php');
include_once(G5_LIB_PATH.'/outlogin.lib.php');
include_once(G5_LIB_PATH.'/poll.lib.php');
include_once(G5_LIB_PATH.'/visit.lib.php');
include_once(G5_LIB_PATH.'/connect.lib.php');
include_once(G5_LIB_PATH.'/popular.lib.php');
?>

2. index.php

<?php
define('_INDEX_', true);
if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가

if (G5_IS_MOBILE) {
    include_once(G5_THEME_MOBILE_PATH.'/index.php');
    return;
}

include_once(G5_THEME_PATH.'/main_head.php'); //head.php의 원본소스 내용
?>
<?php inlcude_once('login.php'); ?> 4번에 소스 내용 있습니다. 

<?php include_once(G5_THEME_PATH.'/tail.php'); ?>

3. tail.php

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

if (G5_IS_MOBILE) {
    include_once(G5_THEME_MOBILE_PATH.'/tail.php');
    return;
}
?>

<script>
$(function() {
    // 폰트 리사이즈 쿠키있으면 실행
    font_resize("container", get_cookie("ck_font_resize_rmv_class"), get_cookie("ck_font_resize_add_class"));
});
</script>

<?php include_once(G5_THEME_PATH."/tail.sub.php"); ?>

4. login.php

<?php
if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가
// add_stylesheet('css 구문', 출력순서); 숫자가 작을 수록 먼저 출력됨
add_stylesheet('<link rel="stylesheet" href="'.G5_THEME_CSS_URL.'/login.css">', 0);

$url = $_GET['url'];

// url 체크
check_url_host($url);

$login_url        = login_url($url);
$login_action_url = G5_HTTPS_BBS_URL."/login_check.php";
$login_ck = G5_URL."/mainpage.php"; //로그인 후 보여주려는 새로운 페이지
?>

<!-- 로그인 시작 { -->
<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_ck ?>">
<div id="mb_login" class="mbskin">
   
 <section class="container">
  <article class="half">
    <div class="content">
     <div class='imgbox'></div>
     <div class="logbox">     
      <input type="text" name="mb_id" id="login_id" class="inpt" required="required" placeholder="ID">
      <input type="password" name="mb_password" id="login_pw" class="inpt" required="required" placeholder="PassWord">
      <input type="submit" value="LOGIN" class="submit"><p>
      <input type="checkbox" name="auto_login" id="login_auto_login" class="checkbox">
      <label for="login_auto_login">아이디저장</label><a href="<?php echo G5_BBS_URL ?>/password_lost.php" target="_blank" id="login_password_lost">정보찾기</a>     
     </div>
    </div>
  </article>
 </section>

</div>
</form>


<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
<script type="text/javascript">
$('.tabs .tab').click(function(){
    if ($(this).hasClass('signin')) {
        $('.tabs .tab').removeClass('active');
        $(this).addClass('active');
        $('.cont').hide();
        $('.signin-cont').show();
    }
    if ($(this).hasClass('signup')) {
        $('.tabs .tab').removeClass('active');
        $(this).addClass('active');
        $('.cont').hide();
        $('.signup-cont').show();
    }
});


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

function flogin_submit(f)
{
    return true;
}
</script>

5. mainpage.php(새로 만든 페이지)

<?php

if (G5_IS_MOBILE) {
    include_once(G5_THEME_MOBILE_PATH.'/index.php');
    return;
}

include_once(G5_THEME_PATH.'/main_head.php');
?>

<!-- 콘텐츠 시작 { -->
<div id="wrapper">
    <div id="aside">
        <?php echo outlogin('theme/basic'); // 외부 로그인, 테마의 스킨을 사용하려면 스킨을 theme/basic 과 같이 지정 ?>
        <?php //echo poll('theme/basic'); // 설문조사, 테마의 스킨을 사용하려면 스킨을 theme/basic 과 같이 지정 ?>
    </div>
    <div id="container">
        <?php if ((!$bo_table || $w == 's' ) && !defined("_INDEX_")) { ?><div id="container_title"><?php echo $g5['title'] ?></div><?php } ?>

<h2 class="sound_only">최신글</h2>
<!-- 최신글 시작 { -->
<?php
//  최신글
$sql = " select bo_table
            from `{$g5['board_table']}` a left join `{$g5['group_table']}` b on (a.gr_id=b.gr_id)
            where a.bo_device <> 'mobile' ";
if(!$is_admin)
    $sql .= " and a.bo_use_cert = '' ";
$sql .= " order by b.gr_order, a.bo_order ";
$result = sql_query($sql);
for ($i=0; $row=sql_fetch_array($result); $i++) {
    if ($i%2==1) $lt_style = "margin-left:20px";
    else $lt_style = "";
?>
    <div style="float:center;<?php echo $lt_style ?>">
        <?php
        // 이 함수가 바로 최신글을 추출하는 역할을 합니다.
        // 사용방법 : latest(스킨, 게시판아이디, 출력라인, 글자수);
        // 테마의 스킨을 사용하려면 theme/basic 과 같이 지정
        echo latest('theme/basic', $row['bo_table'], 5, 25);
        ?>
    </div>
<?php } ?>
<!-- } 최신글 끝 -->

<?php  include_once(G5_THEME_PATH.'/main_tail.php'); ?>

여기서 main_head와 main_tail 소스는 그누보드 원본 head와tail소스 내용 그대로 입니다.

이렇게 하면 로그인 화면만 보여지고 로그인시 아이디 비번이 맞는지 확인 체크는 되는데

아이디와 비번이 맞은 경우 mainpage.php에서 막히네요ㅠㅠ

|

답변 1개

2016-06-06 (월) 23:48:08

http://sir.kr/qa/120510#c_120571 

테마의 head.php 파일 상단에 넣어주니 되네요.

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