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

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

곤주 1년 전 조회 5,943

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개

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

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>

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

답변에 대한 댓글 1개

곤주
1년 전
감사합니다. 덕분에 해결했습니다.

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

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

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

감사합니다^^

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

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

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

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

답변에 대한 댓글 1개

곤주
1년 전
답변 감사합니다.

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

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

조언 주셔서 감사합니다.

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

플라이
1년 전

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

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

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

답변에 대한 댓글 4개

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

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

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

제가 적용한 부분에 오류가 있을까요?
곤주
1년 전
개별페이지 접근 불가에 대해 검색해 보니까,
그누 자체가 개별페이지 접근을 못하게 해 놓은 것 같은데,
혹시 개별페이지 불러오기가 안 되는 것일까요?

index.php와 같은 구조로 내용만 다르게 출력하려고 하는 것인데...
혹시 불가능한 것인지 알고 싶습니다.
플라이
1년 전
테마안에도 index2.php와 모바일 폴더안에도 index2.php만들어서 소스안에 테마폴더안에 맞춰 적용해주셔야 합니다.
곤주
1년 전
감사합니다.
알려 주신 내용을 토대로 더 학습해 보겠습니다.

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

1년 전

theme/basic/mobile/index.php

</p>

<p><?php

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

<p>if(G5_COMMUNITY_USE === false) {

    include_once(G5_THEME_MSHOP_PATH.'/index.php');

    return;

}</p>

<p> </p>

<p>$index = isset($_REQUEST['index']) ? $_REQUEST['index'] : ''; 

if ($index == 'index2') {

    include_once(G5_THEME_MOBILE_PATH.'/index2.php');

    return;

}</p>

<p> </p>

<p>include_once(G5_THEME_MOBILE_PATH.'/head.php');

?></p>

<p><!-- 메인화면 최신글 시작 -->

<?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++) {

    // 이 함수가 바로 최신글을 추출하는 역할을 합니다.

    // 스킨은 입력하지 않을 경우 관리자 > 환경설정의 최신글 스킨경로를 기본 스킨으로 합니다.</p>

<p>    // 사용방법

    // latest(스킨, 게시판아이디, 출력라인, 글자수);

    echo latest('theme/basic', $row['bo_table'], 12, 25);

}

?>

<!-- 메인화면 최신글 끝 --></p>

<p>

<a href="?index=index2">index2</a></p>

<p> </p>

<p><?php

include_once(G5_THEME_MOBILE_PATH.'/tail.php');</p>

<p>

 

theme/basic/mobile/index2.php

</p>

<p>index2</p>

<p>

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

답변에 대한 댓글 1개

곤주
1년 전
답변 감사합니다.

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">
이런 식으로 해도 링크를 누르면 흰색 화면만 뜨네요.

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

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

로그인