그누보드5 html_end(); // HTML 마지막 처리 함수 추가후 문제
본문
tail.sub.php 에 마지막 라인에 <?php echo html_end(); // HTML 마지막 처리 함수 : 반드시 넣어주시기 바랍니다. ?> 소스 추가후 에러문이 떠요.
Fatal error: Call to a member function run() on a non-object in E:\APM_Setup\htdocs\lib\common.lib.php on line 2328 이와 같은 에러경고문이 떠요.
무슨문제인지 알수가 없네요.
답변 2
해당함수가없다는겁니다.
/lib/common.php파일에 html_end()함수가 없다면 추가시키세요
// HTML 마지막 처리
function html_end()
{
global $html_process;
return $html_process->run();
}
function add_stylesheet($stylesheet, $order=0)
{
global $html_process;
if(trim($stylesheet))
$html_process->merge_stylesheet($stylesheet, $order);
}
function add_javascript($javascript, $order=0)
{
global $html_process;
if(trim($javascript))
$html_process->merge_javascript($javascript, $order);
}
class html_process {
protected $css = array();
protected $js = array();
function merge_stylesheet($stylesheet, $order)
{
$links = $this->css;
$is_merge = true;
foreach($links as $link) {
if($link[1] == $stylesheet) {
$is_merge = false;
break;
}
}
if($is_merge)
$this->css[] = array($order, $stylesheet);
}
function merge_javascript($javascript, $order)
{
$scripts = $this->js;
$is_merge = true;
foreach($scripts as $script) {
if($script[1] == $javascript) {
$is_merge = false;
break;
}
}
if($is_merge)
$this->js[] = array($order, $javascript);
}
function run()
{
global $config, $g5, $member;
// 현재접속자 처리
$tmp_sql = " select count(*) as cnt from {$g5['login_table']} where lo_ip = '{$_SERVER['REMOTE_ADDR']}' ";
$tmp_row = sql_fetch($tmp_sql);
if ($tmp_row['cnt']) {
$tmp_sql = " update {$g5['login_table']} set mb_id = '{$member['mb_id']}', lo_datetime = '".G5_TIME_YMDHIS."', lo_location = '{$g5['lo_location']}', lo_url = '{$g5['lo_url']}' where lo_ip = '{$_SERVER['REMOTE_ADDR']}' ";
sql_query($tmp_sql, FALSE);
} else {
$tmp_sql = " insert into {$g5['login_table']} ( lo_ip, mb_id, lo_datetime, lo_location, lo_url ) values ( '{$_SERVER['REMOTE_ADDR']}', '{$member['mb_id']}', '".G5_TIME_YMDHIS."', '{$g5['lo_location']}', '{$g5['lo_url']}' ) ";
sql_query($tmp_sql, FALSE);
// 시간이 지난 접속은 삭제한다
sql_query(" delete from {$g5['login_table']} where lo_datetime < '".date("Y-m-d H:i:s", G5_SERVER_TIME - (60 * $config['cf_login_minutes']))."' ");
// 부담(overhead)이 있다면 테이블 최적화
//$row = sql_fetch(" SHOW TABLE STATUS FROM `$mysql_db` LIKE '$g5['login_table']' ");
//if ($row['Data_free'] > 0) sql_query(" OPTIMIZE TABLE $g5['login_table'] ");
}
$buffer = ob_get_contents();
ob_end_clean();
$stylesheet = '';
$links = $this->css;
if(!empty($links)) {
foreach ($links as $key => $row) {
$order[$key] = $row[0];
$index[$key] = $key;
$style[$key] = $row[1];
}
array_multisort($order, SORT_ASC, $index, SORT_ASC, $links);
foreach($links as $link) {
if(!trim($link[1]))
continue;
$stylesheet .= PHP_EOL.$link[1];
}
}
$javascript = '';
$scripts = $this->js;
$php_eol = '';
unset($order);
unset($index);
if(!empty($scripts)) {
foreach ($scripts as $key => $row) {
$order[$key] = $row[0];
$index[$key] = $key;
$script[$key] = $row[1];
}
array_multisort($order, SORT_ASC, $index, SORT_ASC, $scripts);
foreach($scripts as $js) {
if(!trim($js[1]))
continue;
$javascript .= $php_eol.$js[1];
$php_eol = PHP_EOL;
}
}
/*
</title>
<link rel="stylesheet" href="default.css">
밑으로 스킨의 스타일시트가 위치하도록 하게 한다.
*/
$buffer = preg_replace('#(</title>[^<]*<link[^>]+>)#', "$1$stylesheet", $buffer);
/*
</head>
<body>
전에 스킨의 자바스크립트가 위치하도록 하게 한다.
*/
$buffer = preg_replace('#(</head>[^<]*<body[^>]*>)#', "$javascript\n$1", $buffer);
return $buffer;
}
}
common.lib.php에서
function run() <---- 이 함수가 있는지 찾아보세요
없다면 common.lib.php를 상위버젼으로 바꾸세요