index.php에서 다른 php 파일로 전환에 대해 조언 부탁드립니다.

index.php에서 다른 php 파일로 전환에 대해 조언 부탁드립니다.

QA

index.php에서 다른 php 파일로 전환에 대해 조언 부탁드립니다.

본문

g5 폴더에 그누보드5가 설치된 상태입니다.

g5/theme/basic/mobile/index.php 가 모바일 페이지 메인화면입니다.

 

모바일 메인(index.php)에서 링크(버튼)를 누르면,

메인 화면(index.php)과 같은 구성인데 내용만 바뀌게 하려고 합니다.

 

index.php를 다운받아서 index2.php로 이름을 바꾸어 같은 위치에 업로드했습니다.

 

그리고 index.php에서 버튼을 하나 만들어서

링크를 ../../../../g5/theme/basic/mobile/index2.php 로 하였습니다.

 

index.php에 접속해서 버튼(링크)을 누르면 index2.php 화면으로 전환되어야 정상적인 것 같은데...

그냥 흰색 빈 화면만 뜨는 상태입니다.

 

이렇게 링크를 연결하면 안 되는 것인가요?

이 질문에 댓글 쓰기 :

답변 4

mobile/index2.php 상단을 이렇게 수정하세요

<?php

include_once("_common.php"); //<===추가
if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가

 

그리고 링크는 다음처럼 만드세요( 경로가 ../../../../g5/theme <==이것이 아닙니다)

<a href="./theme/<?php echo $config['cf_theme'];?>/mobile/index2.php">mobile index2 <==</a>

감사합니다. 덕분에 해결했습니다.

_common.php를 불러와야 되고,
링크하는 방법이 따로 있었던 것이네요.

버튼(링크)이 화면에 떠 있는 버튼이다 보니까 index2.php 에서도 동일한 버튼이 나타나는데,
index2.php에서 같은 버튼을 눌러 보면 오류가 나네요.

이 부분은 index2.php에서의 버튼 링크를 #으로 처리해서 해결했습니다.

감사합니다^^

theme/basic/mobile/index.php


<?php
if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가
if(G5_COMMUNITY_USE === false) {
    include_once(G5_THEME_MSHOP_PATH.'/index.php');
    return;
}
 
$index = isset($_REQUEST['index']) ? $_REQUEST['index'] : ''; 
if ($index == 'index2') {
    include_once(G5_THEME_MOBILE_PATH.'/index2.php');
    return;
}
 
include_once(G5_THEME_MOBILE_PATH.'/head.php');
?>
<!-- 메인화면 최신글 시작 -->
<?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 <> 'pc' ";
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++) {
    // 이 함수가 바로 최신글을 추출하는 역할을 합니다.
    // 스킨은 입력하지 않을 경우 관리자 > 환경설정의 최신글 스킨경로를 기본 스킨으로 합니다.
    // 사용방법
    // latest(스킨, 게시판아이디, 출력라인, 글자수);
    echo latest('theme/basic', $row['bo_table'], 12, 25);
}
?>
<!-- 메인화면 최신글 끝 -->

<a href="?index=index2">index2</a>
 
<?php
include_once(G5_THEME_MOBILE_PATH.'/tail.php');

 

theme/basic/mobile/index2.php


index2

답변 감사합니다.

index.php 파일과 index2.php 파일에

$index = isset($_REQUEST['index']) ? $_REQUEST['index'] : '';
if ($index == 'index2') {
    include_once(G5_THEME_MOBILE_PATH.'/index2.php');
    return;
}

이 내용을 추가하고,

버튼 링크에 <a href="?index=index2" target="self">
이런 식으로 해도 링크를 누르면 흰색 화면만 뜨네요.

g5/theme/basic/mobile/index2.php 여기 페이지가 아니라
모바일 경로는 g5/mobile/index2.php 로 되어야 하는데 여기에서 테마의 경로의 파일을 g5/theme/basic/mobile/index2.php 페이지로 연결되도록 처리되어야 하는데
제대로 적용이 안되어서 에러가 발생되는 부분으로 보여집니다.

해당 g5/theme/basic/mobile/index2.php로는 개별페이지 접근이 불가하여 빈 페이지로 보여지는 겁니다.

특정 테마로는 개별페이지 접근이 불가능한가 보군요.

그러면 g5/mobile/ 에 index2.php 파일을 올리고,
링크 주소를 ../../../../g5/mobile/index2.php 이런 식으로 해 보았는데
동일하게 흰색 화면이 뜨네요.

제가 말씀하신 부분을 잘못 이해했나 봅니다.

제가 적용한 부분에 오류가 있을까요?

개별페이지 접근 불가에 대해 검색해 보니까,
그누 자체가 개별페이지 접근을 못하게 해 놓은 것 같은데,
혹시 개별페이지 불러오기가 안 되는 것일까요?

index.php와 같은 구조로 내용만 다르게 출력하려고 하는 것인데...
혹시 불가능한 것인지 알고 싶습니다.

개별페이지 접근 불가 때문에 그렇습니다.

// if (!defined('_GNUBOARD_')) exit; 이 부분을 주석처리 하세요.

답변 감사합니다.

개별페이지 접근 불가로 검색해 보니까,
개별페이지 접근 불가 부분을 주석 처리하면 보안에 문제가 있다는 글을 보아서,
이 부분은 살리고, 다른 방식을 취하려고 알아보는 중이었는데...

_common.php를 추가하고,
링크를 아래와 같은 방식으로 하니까 해결되었습니다.
<a href="./theme/<?php echo $config['cf_theme'];?>/mobile/index2.php">

조언 주셔서 감사합니다.

답변을 작성하시기 전에 로그인 해주세요.
전체 61,332
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT