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

최신글 출력 문제 채택완료

felix9999 10년 전 조회 4,331

http://ga1234.cafe24.com/main/main.php">http://ga1234.cafe24.com/main/main.php

main 폴더안에 있는 main.php에다 최신글을 출력할까 합니다.

그런데 상단에 <? include_once('../lib/latest.lib.php'); ?>를 넣어 latest를 호출해도 오류가 납니다.

php를 잘 몰라 함수 및 경로를 어떻게 지정해야 할지 모르겠습니다. 

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

답변 3개

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

먼저 제안드리고 싶은 점은 그누보드가 루트에 설치되었는데 메인 페이지는 별도의 main이라는 폴더에 구성이 되어 있는데요. 이렇게 구성하시는 것보다는 루트에 같이 구성하시는 것이 더욱 용이하다고 보여집니다.

 

현재 부분에서는

</p><p>include_once('../_common.php');
include_once(G5_LIB_PATH.'/latest.lib.php');</p><p>

와 같이 구성해서 넣어보세요.

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

답변에 대한 댓글 3개

f
felix9999
10년 전
답변감사합니다. 그런데, 안되네요. ㅠ_ㅠ
p
port
10년 전
<?php ?>선언 안에는 넣으신건가요?
f
felix9999
10년 전
include_once('../_common.php'); 이거 대신
include_once('../common.php'); 치니까 되네요.

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

R
10년 전

_common.php  파일을 만드세요 main 폴더안에 만드시고 내용을 아래와 같이

아래 코드는 config 파일이 존재하는 폴더를 찾아주는 소스입니다.

 

</p><p> </p><p><?php</p><p>$tilde_remove = preg_replace('/^\/\~[^\/]+(.*)$/', '$1', $_SERVER['SCRIPT_NAME']);</p><p>$document_root = str_replace($tilde_remove, '', $_SERVER['SCRIPT_FILENAME']);</p><p>$port = $_SERVER['SERVER_PORT'] != 80 ? ':'.$_SERVER['SERVER_PORT'] : '';</p><p>$http = 'http' . ((isset($_SERVER['HTTPS']) && $_SERVER['HTTPS']=='on') ? 's' : '') . '://';</p><p>$user = str_replace(str_replace($document_root, '', $_SERVER['SCRIPT_FILENAME']), '', $_SERVER['SCRIPT_NAME']);</p><p>$host = isset($_SERVER['HTTP_HOST']) ? $_SERVER['HTTP_HOST'] : $_SERVER['SERVER_NAME'];</p><p>if(isset($_SERVER['HTTP_HOST']) && preg_match('/:[0-9]+$/', $host)) $host = preg_replace('/:[0-9]+$/', '', $host);</p><p> </p><p>$index_url = $http.$host.$port.$user;</p><p> </p><p> </p><p>$index_root =  index_path($index_url, $_SERVER['PHP_SELF']);</p><p> </p><p>include_once($index_root.'/common.php');</p><p> </p><p>function index_path($index, $url){</p><p> </p><p> $path = ".";</p><p> $index = explode("/", $index);</p><p> $url = explode("/", $url);</p><p> //index 페이지의 경로를 찾는다.</p><p> $index_path = $index[count($index)-1];</p><p> // 현재 경로가 상위폴더인지 검사한다.</p><p> for($i=0; $i<count($url); $i++){ </p><p>  if($index_path == $url[$i]){</p><p>   $up_polder = true; </p><p>   $index_key = $i; //index 폴더의 위치를 저장 </p><p>  }</p><p> }</p><p> </p><p> if($up_polder){</p><p>  //상위 폴더일경우</p><p>  $loop_cnt = count($url) - 2 - $index_key;</p><p>  for($i=0; $i<$loop_cnt; $i++){</p><p>   if($i == 0 ){</p><p>    $path = "..";</p><p>   }else{</p><p>    $path .= "/..";</p><p>   }</p><p>  }</p><p> }else{</p><p>  // 하위 폴더일경우 현재 폴더를 찾는다</p><p>  $url_path = $url[count($url)-2];//폴더가 아닌 파일을 제거하기 위해 -2</p><p>  for($i=0; $i<count($index); $i++){</p><p>   if($url_path == $index[$i]){</p><p>    $url_key = $i+1;// 현위치의 다음 부터 폴더경로 추가를 위해 +1을 해줌</p><p>   }</p><p>  }</p><p>  for($i=$url_key; $i<count($index); $i++){  // 폴더경로 추가 </p><p>   $path .= "/".$index[$i];</p><p>  }</p><p>  </p><p> }</p><p> </p><p> return $path;</p><p>}</p><p> </p><p>?> </p><p> </p><p>

 

그리고 나머지는 port 님 이알려주신대로 

 

./_common.php 파일은 같은 폴더에 존재 하니 상위로 나갈 필요는 없습니다.

 


 

 

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

답변에 대한 댓글 1개

f
felix9999
10년 전
답변감사합니다. 그런데, 안되네요. ㅠ_ㅠ

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

10년 전

<? include_once('../lib/latest.lib.php'); ?>

 

.. 부분의 경로가 잘못되었다던가...그러신거같아요...음...

.. <-- 이부분을 경로 맞추시면될거같은데

..을 $g4[path] 로 바꿔보세요

 

<? include_once('../lib/latest.lib.php'); ?> 이거를

 

<? include_once('$g4[path]/lib/latest.lib.php'); ?> 이렇게

 

 

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

답변에 대한 댓글 1개

p
port
10년 전
현재 질문자님이 올린 사이트가 그누보드5라서 일단 g4변수를 사용하는 것은 바르지 않을 듯 하네요.

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

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

로그인