약간 이상한 증상인데 제가 사용하는 rss.php 관련입니다. 

약간 이상한 증상인데 제가 사용하는 rss.php 관련입니다. 

QA

약간 이상한 증상인데 제가 사용하는 rss.php 관련입니다. 

답변 2

본문

안녕하세요.
제가 잘 사용하고 있던 rss.php 가 있습니다.
(맨아래 소스 올리겠습니다.)

 

지금도 정상적으로 잘 되는데,
조건에 따라 조금 이상한 점이 있어서 문의 드립니다. 

 

일반적으로 그누보드 설치하고 게시판 생성 후 게시물 등록하고 rss.php 실행하면,
등록된 게시물 내용이 정상적으로 쭉 나옵니다.

 

그런데...
제가 컴퓨터 라라곤에서 작업했던걸 호스팅에 올리고 rss.php를 실행하면,


<rss xmlns:dc="http://purl.org/dc/elements/1.1/" version="2.0">
<channel>
<title>홈페이지 타이틀</title>
<link>도메인명</link>
<description>홈페이지 타이틀</description>
<language>ko</language>
</channel>
</rss>

이것만 보여집니다.

 

게시판은 여러개 생성되어 있는 상태고, 
최근에 작성된 게시물도 많이 있는데 이렇게 나옵니다. 

 

생성되어 있던 게시판에 새로 글을 써도 저 상태고, 
게시판을 새로 하나 생성해서 그곳에 글을 써도 저 상태입니다. 

 

그런데,
기존의 게시판을 모두 삭제 한 후 새로 게시판을 생성하면 이때부터는 rss가 정상적으로 생성됩니다. 

 

다른 홈페이지도 동일하게 컴퓨터 라라곤에서 작업해서 호스팅에 올렸는데, 
rss가 정상적으로 나오는게 있고,
지금 증상처럼 제대로 나오지 않는것도 있습니다. 


그래서 처음에는 그누보드의 버전 차이인가 생각했는데, 
여러차례 테스트해보니 버전의 문제는 아닌거 같습니다.

 

왜 이런지 이유는 모르겠는데,
지금 rss가 제대로 나오지 않는 홈페이지 아무런 문제없이 정상 작동되고 있고,
sitemap도 정상적으로 생성됩니다.

 

그리고 지금 사용하는 rss.php 말고 또 다른 rss.php가 있는데,
이걸로는 문제 있는 계정에서도 rss 정상적으로 생성됩니다. 
(단지 다른 rss.php는 비밀글도 내용이 나오는 관계로 잠시 사용을 안하고 있는 중입니다.)

 

캐시의 문제인가해서 관리자페이지에서 캐시파일 삭제를 해보기도 했습니다.

 

다른 rss.php에서는 정상적으로 내용이 나오는걸 봐서는 지금 사용하는 rss.php를 수정하면 될듯 한데,
아래 소스를 보시고 어느 부분을 손보면 될지 아시는 분 계시면 답변 부탁드립니다.

감사합니다.

 


include_once "_common.php";
header("Content-type: text/xml;charset=utf-8");
header("Cache-Control: no-cache, must-revalidate");
header("Pragma: no-cache");
$limit = 100; // feed 생성 수
$buff = '';
$buff .= "<?xml version=\"1.0\" encoding=\"UTF-8\"?>".PHP_EOL;
$buff .= '<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" >'.PHP_EOL;
$buff .= '<channel>'.PHP_EOL;
$buff .= '<title>'.$config['cf_title'].'</title>'.PHP_EOL;
$buff .= '<link>도메인명</link>'.PHP_EOL;
$buff .= '<description>'.$config['cf_1'].' '.$config['cf_title'].'</description>'.PHP_EOL;
$buff .= '<language>ko</language>'.PHP_EOL;
  
$Search = " where (1) ";
$Search .= " and wr_is_comment = 0 and wr_option NOT LIKE '%secret%' ";
$SelectBoard = " select bo_table,bo_subject from ".$g5['board_table']." where bo_use_search = 1 ";
$QueryBoard = sql_query($SelectBoard);
while($RowBoard = sql_fetch_array($QueryBoard)){ $ResultSelect[] = "( select *, '".$RowBoard['bo_table']."' as bo_table from ".$g5['write_prefix'].$RowBoard['bo_table'].$Search." )"; }
$ResultQuery = implode(" union all ", $ResultSelect);
$ResultQuery .= " order by wr_datetime desc limit 0 , $limit ";
$Query = sql_query($ResultQuery);
while($Row = sql_fetch_array($Query)){
$content = strip_tags($Row['wr_content']);
$content = str_replace(" "," ",$content);
$subject = strip_tags($Row['wr_subject']);
$subject = str_replace("/&/", "&", $subject);
$board = sql_fetch("select bo_subject from g5_board where bo_table = '".$Row['bo_table']."'");
$buff .= "<item>".PHP_EOL;
$buff .= "<title><![CDATA[[".$board['bo_subject']."] ".mb_strimwidth($subject,0,400,'..','utf-8')."]]></title>".PHP_EOL;
$buff .= "<link>".G5_URL."/".$Row['bo_table']."/".$Row['wr_id']."</link>".PHP_EOL;
$buff .= "<description><![CDATA[".mb_strimwidth($content,0,400,'..','utf-8')."]]></description>".PHP_EOL;
$buff .= "<author>".$Row['wr_name']."</author>".PHP_EOL;
$buff .= "<pubDate>".date("D, d M Y H:i:s T", strtotime($Row['wr_datetime']))."</pubDate>".PHP_EOL;
$buff .= "<guid>".G5_URL."/".$Row['bo_table']."/".$Row['wr_id']."</guid>".PHP_EOL;
$buff .= "</item>".PHP_EOL;
}
  
$buff .= "</channel>".PHP_EOL;
$buff .= "</rss>";
echo $buff;

이 질문에 댓글 쓰기 :

답변 2

중간중간 보이는 쿼리에 아래처럼 해서 오류 나오는지 보세요

 

sql_query($SelectBoard ,true); <---true추가

 

$Query = sql_query($ResultQuery, true);

 

게시판이 검색 허용 으로 채크된거 맞죠?

네. 당연히 체크되어 있습니다.
분명 이전에도 이런식으로 계속 사용했고 문제 없었는데,
갑자기 이런거 같습니다.
그래서 처음에는 버전의 문제인가 생각했었습니다.

본문에도 적었듯이
또다른 rss.php에서는 정상적으로 나오는 상태입니다.(비밀글 문제 때문에 사용 안할뿐...)

기존 게시판이 있는 상태에서는 게시판을 새로 생성해도 rss 안나오는데,
기존 게시판 다 삭제 후 게시판을 새로 생성하면 그때부터 rss가 나옵니다.

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