아아~~ 최신글 불러오기 오류좀 봐주세요...ㅜㅜ 정보
아아~~ 최신글 불러오기 오류좀 봐주세요...ㅜㅜ
본문
Fatal error: Cannot redeclare alert() in /home/www/shop/lib/error.lib.php on line 11
이게 뭔 뜻예요? 그누보드3 쓰고 있습니다.
위에처럼 경로랑 모두 맞춰봤는데 요렇게 떠버리는군요 ..아아... 하루죙일 이짓저짓 다해보고
답답해서 여쭤봅니다...
그누보드는 이상없이 잘돌아가고요. 그누보드 관리자도 잘되공... 제가 아래에 설치한 최신게시물도
제대로 잘 보이고하는데.
같은 폴더내에 제가 원하는 원하는 파일내에 최신글만 불러오고져
<?=latest_new('new_scroll', 'gonggi', 5, 50, 0); ?>의 내용을 넣었더니
위에같은 에러가 계속뜸니다....
뭔가가 중복된건지....또 뭐가 잘못된건지 알수가없네요.
이상 문제가 될만한 소스의 내용을 모두 넣으니 고수님들이 좀 살펴봐주세요 아아~...ㅠㅠ
=======메인 삽입부분 (그누보드 설치 폴더안에 있는 left.php파일에서 부릅니다)========
<tr>
<td width="243">
<?
// 이 상수가 정의되지 않으면 각각의 개별 페이지는 별도로 실행될 수 없음
define("_GNUBOARD_", TRUE);
// 게시판 디렉토리에 설치 되어있다고 가정
include './config.php';
// 게시판 디렉토리 내의 lib 디렉토리를 지정
$tmp = dir("./lib");
while ($entry = $tmp->read()) {
// 3.24 수정
if ($entry{0} == ".") continue; // 첫문자가 "."이면 무시한다
include "./lib/" . $entry;
}
// DB연결을 위해 환경파일을 인클루드 시킴
include "./dbconfig.php";
// DB연결자
$connect = @mysql_connect($cfg[mysql_host], $cfg[mysql_user], $cfg[mysql_pass]);
$select_db = @mysql_select_db($cfg[mysql_db], $connect);
?>
<!-- 최신글 추출 -->
<?=latest_new('new_scroll', 'gonggi', 5, 50, 0); ?>
<!-- 최신글 추출 -->
</td>
</tr>
=======메인삽입부분 끝====================================
====스킨내용(이미지경로외엔 수정사항 없음)=====
<?
if (!defined("_GNUBOARD_")) exit; // 개별 페이지 접근 불가
// 최신글 설정
$n_width = 300; // 들어갈 폭에 맞게 전광판 넓이 설정
?>
<table width="300" border="0" cellpadding="0" cellspacing="0">
<tr>
<!-- <td width="29" height="31"><img src="<?=$latest_skin_path?>/img/board_title_left.gif" width="29" height="31"></td>-->
<td background="<?=$latest_skin_path?>./img/board_title_bg.gif" style='padding-top:3px;'> <a href='<?=$g4[bbs_path]?>/board.php?bo_table=<?=$bo_table?>'><font style='font-family:돋움; font-size:9pt; color:#696969;'><strong><?=$board[bo_subject]?></strong></font></a> </td>
<td background="<?=$latest_skin_path?>./img/board_title_bg.gif" style='padding-top:3px;'>
<marquee width='<?=$n_width?>' direction='up' scrollamount='1' scrolldelay=50 height=100 onmouseover='this.stop();' onmouseout='this.start();'>
<?
for ($i=0; $i<count($list); $i++) {
echo $list[$i][icon_reply] . " ";
echo "<a href='{$list[$i][href]}'>";
if ($list[$i][is_notice])
echo "<font style='font-family:돋움; font-size:11pt; color:#2C88B9;'><strong>{$list[$i][subject]}</strong></font>";
else
echo "<li><font style='font-family:돋움; font-size:11pt; color:#6A6A6A;'>{$list[$i][subject]}</font></li>";
echo "</a>";
echo " " . $list[$i][icon_new];
echo "<br>";
}
?>
</marquee>
</td>
<!--<td width="19"><img src="<?=$latest_skin_path?>./img/board_title_right.gif" width="19" height="31"></td>-->
</tr>
</table>
=========스킨내용 여기까지=================
=====./lib/latest.lib.php 파일 내용( latest_new 함수 생성때문에 중간부터추가됨)========
<?
if (defined(__FILE__)) return;
define(__FILE__, TRUE);
//==============
// 최신글 관련 함수
//==============
// 최신글 추출
function latest($skin_dir='', $bo_table, $rows=10, $len=40)
{
global $latest_skin, $cfg;
$tmp_latest_skin = $latest_skin;
// 스킨디렉토리값이 넘어왔다면
if ($skin_dir) {
$latest_skin = "./bbs/skin/latest/$skin_dir";
}
$sql = " select * from $cfg[table_board] where bo_table = '$bo_table' ";
$bo = sql_fetch($sql);
$bo_subject = $bo[bo_subject];
$sql = " select *
from {$cfg[write_table_prefix]}{$bo_table}
where wr_comment = 0
order by wr_id desc limit 0, $rows ";
$result = sql_query($sql);
for ($i=0; $row = mysql_fetch_array($result); $i++) {
$list[$i] = $row;
$list[$i][href] = "./?doc=bbs/gnuboard.php&bo_table=$bo_table&wr_id=$row[wr_id]";
// 코멘트 카운트
$list[$i][commentcnt] = "";
if ($row[wr_commentcnt] > 0) {
$list[$i][commentcnt] = "($row[wr_commentcnt])";
}
$list[$i][name] = gblayer($row[mb_id], cut_str($row[wr_name],10), $row[wr_email], $row[wr_homepage]);
$list[$i][subject] = conv_subject($row[wr_subject], $len,"…");
$list[$i][content] = get_text($row[wr_content]);
$list[$i][date] = substr($row[wr_datetime],2,8);
$list[$i][icon_new] = "";
if ($row[wr_datetime] >= date("Y-m-d H:i:s", time() - $bo[bo_new] * 3600)) {
$list[$i][icon_new] = "<img src='$latest_skin/icon_new.gif' align=absmiddle> ";
}
for ($k=1; $k<=$cfg[file_count]; $k++) {
if (@preg_match($cfg[image_extension], $row["wr_file".$k])) {
$list[$i]["file_image".$k] = "./data/file/$bo_table/" . $row["wr_file".$k];
}
}
for ($k=1; $k<=$cfg[link_count]; $k++) {
if ($row["wr_link".$k]) {
$link[$i]["link".$k] = set_http(get_text(cut_str($row["wr_link".$k], 255)));
$link[$i]["link_href".$k] = "./?doc=bbs/gblink.php&$qstr&wr_id=$row[wr_id]&index=$k";
}
}
}
mysql_free_result($result);
include "$latest_skin/latest.skin.php";
$latest_skin = $tmp_latest_skin;
}
?>
//여기서부터 latest_new 함수 생성때문에 추가된부분 임...위에는 원본
<?
if (defined(__FILE__)) return;
define(__FILE__, TRUE);
// 최신글 추출
function latest_new($skin_dir='', $bo_table, $rows=5, $len=40, $dir_type=0)
{
global $latest_skin, $cfg;
$tmp_latest_skin = $latest_skin;
// 스킨디렉토리값이 넘어왔다면
if ($skin_dir) {
if ($dir_type == 0) { // 불러오는 디렉토리가 bbs 안일때
$latest_skin = "./skin/latest/$skin_dir";
}else { // 불러오는 디렉토리가 최상위 디렉토리일때
$latest_skin = "./bbs/skin/latest/$skin_dir";
}
}
$sql = " select * from $cfg[table_board] where bo_table = '$bo_table' ";
$bo = sql_fetch($sql);
$bo_subject = $bo[bo_subject];
$sql = " select *
from {$cfg[write_table_prefix]}{$bo_table}
where wr_comment = 0
order by wr_id desc limit 0, $rows ";
$result = sql_query($sql);
for ($i=0; $row = mysql_fetch_array($result); $i++) {
$list[$i] = $row;
if ($dir_type == 0) { // 불러오는 디렉토리가 bbs 안일때
$list[$i][href] = "./?doc=board.php&bo_table=$bo_table&wr_id=$row[wr_id]";
}else { // 불러오는 디렉토리가 최상위 디렉토리일때
$list[$i][href] = "./bbs/?doc=board.php&bo_table=$bo_table&wr_id=$row[wr_id]";
}
// 코멘트 카운트
$list[$i][commentcnt] = "";
if ($row[wr_commentcnt] > 0) {
$list[$i][commentcnt] = "($row[wr_commentcnt])";
}
$list[$i][name] = gblayer($row[mb_id], cut_str($row[wr_name],10), $row[wr_email], $row[wr_homepage]);
$list[$i][subject] = conv_subject($row[wr_subject], $len,"…");
$list[$i][content] = get_text($row[wr_content]);
$list[$i][date] = substr($row[wr_datetime],2,8);
$list[$i][icon_new] = "";
if ($row[wr_datetime] >= date("Y-m-d H:i:s", time() - $bo[bo_new] * 3600)) {
$list[$i][icon_new] = "<img src='$latest_skin/icon_new.gif' align=absmiddle> ";
}
for ($k=1; $k<=$cfg[file_count]; $k++) {
if (@preg_match($cfg[image_extension], $row["wr_file".$k])) {
if ($dir_type == 0) { // 불러오는 디렉토리가 bbs 안일때
$list[$i]["file_image".$k] = "./data/file/$bo_table/" . $row["wr_file".$k];
}else { // 불러오는 디렉토리가 최상위 디렉토리일때
$list[$i]["file_image".$k] = "./bbs/data/file/$bo_table/" . $row["wr_file".$k];
}
}
}
for ($k=1; $k<=$cfg[link_count]; $k++) {
if ($row["wr_link".$k]) {
$link[$i]["link".$k] = set_http(get_text(cut_str($row["wr_link".$k], 255)));
if ($dir_type == 0) { // 불러오는 디렉토리가 bbs 안일때
$link[$i]["link_href".$k] = "./?doc=link.php&$qstr&wr_id=$row[wr_id]&index=$k";
}else { // 불러오는 디렉토리가 최상위 디렉토리일때
$link[$i]["link_href".$k] = "./bbs/?doc=link.php&$qstr&wr_id=$row[wr_id]&index=$k";
}
}
}
}
mysql_free_result($result);
include "$latest_skin/latest.skin.php";
$latest_skin = $tmp_latest_skin;
}
?>
====================latest.lib.php내용 여기까지==========
============문제의 ./lib/error.lib.php 파일 내용(원본수정안함) ============
<?
if (defined(__FILE__)) return;
define(__FILE__, TRUE);
//============
// 오류 관련 함수
//============
// 경고메세지를 경고창으로
function alert($msg, $url='') //<<<< 문제의 11라인입니다.
{
if (!$msg) $msg = "올바른 방법으로 이용해 주십시오.";
echo "<script language='javascript'>alert('$msg');";
if (!$url)
echo "history.go(-1);";
echo "</script>";
if ($url)
echo "<meta http-equiv='refresh' content='0;url=$url'>";
exit;
}
?>
==========여기까지==============
이게 뭔 뜻예요? 그누보드3 쓰고 있습니다.
위에처럼 경로랑 모두 맞춰봤는데 요렇게 떠버리는군요 ..아아... 하루죙일 이짓저짓 다해보고
답답해서 여쭤봅니다...
그누보드는 이상없이 잘돌아가고요. 그누보드 관리자도 잘되공... 제가 아래에 설치한 최신게시물도
제대로 잘 보이고하는데.
같은 폴더내에 제가 원하는 원하는 파일내에 최신글만 불러오고져
<?=latest_new('new_scroll', 'gonggi', 5, 50, 0); ?>의 내용을 넣었더니
위에같은 에러가 계속뜸니다....
뭔가가 중복된건지....또 뭐가 잘못된건지 알수가없네요.
이상 문제가 될만한 소스의 내용을 모두 넣으니 고수님들이 좀 살펴봐주세요 아아~...ㅠㅠ
=======메인 삽입부분 (그누보드 설치 폴더안에 있는 left.php파일에서 부릅니다)========
<tr>
<td width="243">
<?
// 이 상수가 정의되지 않으면 각각의 개별 페이지는 별도로 실행될 수 없음
define("_GNUBOARD_", TRUE);
// 게시판 디렉토리에 설치 되어있다고 가정
include './config.php';
// 게시판 디렉토리 내의 lib 디렉토리를 지정
$tmp = dir("./lib");
while ($entry = $tmp->read()) {
// 3.24 수정
if ($entry{0} == ".") continue; // 첫문자가 "."이면 무시한다
include "./lib/" . $entry;
}
// DB연결을 위해 환경파일을 인클루드 시킴
include "./dbconfig.php";
// DB연결자
$connect = @mysql_connect($cfg[mysql_host], $cfg[mysql_user], $cfg[mysql_pass]);
$select_db = @mysql_select_db($cfg[mysql_db], $connect);
?>
<!-- 최신글 추출 -->
<?=latest_new('new_scroll', 'gonggi', 5, 50, 0); ?>
<!-- 최신글 추출 -->
</td>
</tr>
=======메인삽입부분 끝====================================
====스킨내용(이미지경로외엔 수정사항 없음)=====
<?
if (!defined("_GNUBOARD_")) exit; // 개별 페이지 접근 불가
// 최신글 설정
$n_width = 300; // 들어갈 폭에 맞게 전광판 넓이 설정
?>
<table width="300" border="0" cellpadding="0" cellspacing="0">
<tr>
<!-- <td width="29" height="31"><img src="<?=$latest_skin_path?>/img/board_title_left.gif" width="29" height="31"></td>-->
<td background="<?=$latest_skin_path?>./img/board_title_bg.gif" style='padding-top:3px;'> <a href='<?=$g4[bbs_path]?>/board.php?bo_table=<?=$bo_table?>'><font style='font-family:돋움; font-size:9pt; color:#696969;'><strong><?=$board[bo_subject]?></strong></font></a> </td>
<td background="<?=$latest_skin_path?>./img/board_title_bg.gif" style='padding-top:3px;'>
<marquee width='<?=$n_width?>' direction='up' scrollamount='1' scrolldelay=50 height=100 onmouseover='this.stop();' onmouseout='this.start();'>
<?
for ($i=0; $i<count($list); $i++) {
echo $list[$i][icon_reply] . " ";
echo "<a href='{$list[$i][href]}'>";
if ($list[$i][is_notice])
echo "<font style='font-family:돋움; font-size:11pt; color:#2C88B9;'><strong>{$list[$i][subject]}</strong></font>";
else
echo "<li><font style='font-family:돋움; font-size:11pt; color:#6A6A6A;'>{$list[$i][subject]}</font></li>";
echo "</a>";
echo " " . $list[$i][icon_new];
echo "<br>";
}
?>
</marquee>
</td>
<!--<td width="19"><img src="<?=$latest_skin_path?>./img/board_title_right.gif" width="19" height="31"></td>-->
</tr>
</table>
=========스킨내용 여기까지=================
=====./lib/latest.lib.php 파일 내용( latest_new 함수 생성때문에 중간부터추가됨)========
<?
if (defined(__FILE__)) return;
define(__FILE__, TRUE);
//==============
// 최신글 관련 함수
//==============
// 최신글 추출
function latest($skin_dir='', $bo_table, $rows=10, $len=40)
{
global $latest_skin, $cfg;
$tmp_latest_skin = $latest_skin;
// 스킨디렉토리값이 넘어왔다면
if ($skin_dir) {
$latest_skin = "./bbs/skin/latest/$skin_dir";
}
$sql = " select * from $cfg[table_board] where bo_table = '$bo_table' ";
$bo = sql_fetch($sql);
$bo_subject = $bo[bo_subject];
$sql = " select *
from {$cfg[write_table_prefix]}{$bo_table}
where wr_comment = 0
order by wr_id desc limit 0, $rows ";
$result = sql_query($sql);
for ($i=0; $row = mysql_fetch_array($result); $i++) {
$list[$i] = $row;
$list[$i][href] = "./?doc=bbs/gnuboard.php&bo_table=$bo_table&wr_id=$row[wr_id]";
// 코멘트 카운트
$list[$i][commentcnt] = "";
if ($row[wr_commentcnt] > 0) {
$list[$i][commentcnt] = "($row[wr_commentcnt])";
}
$list[$i][name] = gblayer($row[mb_id], cut_str($row[wr_name],10), $row[wr_email], $row[wr_homepage]);
$list[$i][subject] = conv_subject($row[wr_subject], $len,"…");
$list[$i][content] = get_text($row[wr_content]);
$list[$i][date] = substr($row[wr_datetime],2,8);
$list[$i][icon_new] = "";
if ($row[wr_datetime] >= date("Y-m-d H:i:s", time() - $bo[bo_new] * 3600)) {
$list[$i][icon_new] = "<img src='$latest_skin/icon_new.gif' align=absmiddle> ";
}
for ($k=1; $k<=$cfg[file_count]; $k++) {
if (@preg_match($cfg[image_extension], $row["wr_file".$k])) {
$list[$i]["file_image".$k] = "./data/file/$bo_table/" . $row["wr_file".$k];
}
}
for ($k=1; $k<=$cfg[link_count]; $k++) {
if ($row["wr_link".$k]) {
$link[$i]["link".$k] = set_http(get_text(cut_str($row["wr_link".$k], 255)));
$link[$i]["link_href".$k] = "./?doc=bbs/gblink.php&$qstr&wr_id=$row[wr_id]&index=$k";
}
}
}
mysql_free_result($result);
include "$latest_skin/latest.skin.php";
$latest_skin = $tmp_latest_skin;
}
?>
//여기서부터 latest_new 함수 생성때문에 추가된부분 임...위에는 원본
<?
if (defined(__FILE__)) return;
define(__FILE__, TRUE);
// 최신글 추출
function latest_new($skin_dir='', $bo_table, $rows=5, $len=40, $dir_type=0)
{
global $latest_skin, $cfg;
$tmp_latest_skin = $latest_skin;
// 스킨디렉토리값이 넘어왔다면
if ($skin_dir) {
if ($dir_type == 0) { // 불러오는 디렉토리가 bbs 안일때
$latest_skin = "./skin/latest/$skin_dir";
}else { // 불러오는 디렉토리가 최상위 디렉토리일때
$latest_skin = "./bbs/skin/latest/$skin_dir";
}
}
$sql = " select * from $cfg[table_board] where bo_table = '$bo_table' ";
$bo = sql_fetch($sql);
$bo_subject = $bo[bo_subject];
$sql = " select *
from {$cfg[write_table_prefix]}{$bo_table}
where wr_comment = 0
order by wr_id desc limit 0, $rows ";
$result = sql_query($sql);
for ($i=0; $row = mysql_fetch_array($result); $i++) {
$list[$i] = $row;
if ($dir_type == 0) { // 불러오는 디렉토리가 bbs 안일때
$list[$i][href] = "./?doc=board.php&bo_table=$bo_table&wr_id=$row[wr_id]";
}else { // 불러오는 디렉토리가 최상위 디렉토리일때
$list[$i][href] = "./bbs/?doc=board.php&bo_table=$bo_table&wr_id=$row[wr_id]";
}
// 코멘트 카운트
$list[$i][commentcnt] = "";
if ($row[wr_commentcnt] > 0) {
$list[$i][commentcnt] = "($row[wr_commentcnt])";
}
$list[$i][name] = gblayer($row[mb_id], cut_str($row[wr_name],10), $row[wr_email], $row[wr_homepage]);
$list[$i][subject] = conv_subject($row[wr_subject], $len,"…");
$list[$i][content] = get_text($row[wr_content]);
$list[$i][date] = substr($row[wr_datetime],2,8);
$list[$i][icon_new] = "";
if ($row[wr_datetime] >= date("Y-m-d H:i:s", time() - $bo[bo_new] * 3600)) {
$list[$i][icon_new] = "<img src='$latest_skin/icon_new.gif' align=absmiddle> ";
}
for ($k=1; $k<=$cfg[file_count]; $k++) {
if (@preg_match($cfg[image_extension], $row["wr_file".$k])) {
if ($dir_type == 0) { // 불러오는 디렉토리가 bbs 안일때
$list[$i]["file_image".$k] = "./data/file/$bo_table/" . $row["wr_file".$k];
}else { // 불러오는 디렉토리가 최상위 디렉토리일때
$list[$i]["file_image".$k] = "./bbs/data/file/$bo_table/" . $row["wr_file".$k];
}
}
}
for ($k=1; $k<=$cfg[link_count]; $k++) {
if ($row["wr_link".$k]) {
$link[$i]["link".$k] = set_http(get_text(cut_str($row["wr_link".$k], 255)));
if ($dir_type == 0) { // 불러오는 디렉토리가 bbs 안일때
$link[$i]["link_href".$k] = "./?doc=link.php&$qstr&wr_id=$row[wr_id]&index=$k";
}else { // 불러오는 디렉토리가 최상위 디렉토리일때
$link[$i]["link_href".$k] = "./bbs/?doc=link.php&$qstr&wr_id=$row[wr_id]&index=$k";
}
}
}
}
mysql_free_result($result);
include "$latest_skin/latest.skin.php";
$latest_skin = $tmp_latest_skin;
}
?>
====================latest.lib.php내용 여기까지==========
============문제의 ./lib/error.lib.php 파일 내용(원본수정안함) ============
<?
if (defined(__FILE__)) return;
define(__FILE__, TRUE);
//============
// 오류 관련 함수
//============
// 경고메세지를 경고창으로
function alert($msg, $url='') //<<<< 문제의 11라인입니다.
{
if (!$msg) $msg = "올바른 방법으로 이용해 주십시오.";
echo "<script language='javascript'>alert('$msg');";
if (!$url)
echo "history.go(-1);";
echo "</script>";
if ($url)
echo "<meta http-equiv='refresh' content='0;url=$url'>";
exit;
}
?>
==========여기까지==============
댓글 전체
위 에러는 alert() 펑션이 중복 호출되어서 나는 에러입니다.
관련 부분(수정한 부분등)을 다시 확인해 보시고, alert() 펑션을 적절하지 않게 사용한곳이 있다면 삭제해 주십시오.
관련 부분(수정한 부분등)을 다시 확인해 보시고, alert() 펑션을 적절하지 않게 사용한곳이 있다면 삭제해 주십시오.
감사합니다. 대충 짐작은 했는데 아직도 어디부분의 내용이 중복됬는지 알아내기 버겁워요 ㅠㅠ
이것저것 해보는 수밖에는요... 혹시 위의 내용중 "메인삽입부분에서" 잘못된게 어떤건지 지적해주신다면
정말 감사하겠싸와요...답변감사합니다. sjsjin 님 ^^
이것저것 해보는 수밖에는요... 혹시 위의 내용중 "메인삽입부분에서" 잘못된게 어떤건지 지적해주신다면
정말 감사하겠싸와요...답변감사합니다. sjsjin 님 ^^
게시판 상에서 코드를 모두 확인하기는 곤란합니다.
간단한 문제로 판단되니 계정을 쪽지로 알려주시면 직접 들어가서 확인해 보고 수정해 드리겠습니다..
(단, 시간이 오래 걸리지 않아야 합니다...물론 현재 상태로 보아 오래걸릴문제는 아닌듯 합니다만..)
그리고 쪽지로 보내주실려면 관련 페이지등도 알려주십시오.
간단한 문제로 판단되니 계정을 쪽지로 알려주시면 직접 들어가서 확인해 보고 수정해 드리겠습니다..
(단, 시간이 오래 걸리지 않아야 합니다...물론 현재 상태로 보아 오래걸릴문제는 아닌듯 합니다만..)
그리고 쪽지로 보내주실려면 관련 페이지등도 알려주십시오.
ㅡ,,ㅡ;; 당췌 안되네..아..답답하다..
해결됐습니다. ^^