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

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

QA

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

답변 4

본문

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">

조언 주셔서 감사합니다.

답변을 작성하시기 전에 로그인 해주세요.
QA 내용 검색
질문등록
filter #css ×
전체 2,087
© SIRSOFT
현재 페이지 제일 처음으로