원래 사이트에서 로컬로 파일 이동하고나서 사이트 들어가니 이런 메시지가 나와요
Fatal error: Cannot redeclare array_map_deep() (previously declared
in C:\xampp\htdocs\g1\common.php:54) in
C:\xampp\htdocs\g1\lib\common.lib.php on line 26
이런 메시지가 나와서
이 파일의 26번째 줄 보면 소스가 이렇게 적혀 있는데
뭐가 문제 있는거죠?
$str .= '<a href="'.$url.'1'.$add.'" class="pg_page pg_start">처음</a>'.PHP_EOL;
그리고 db 콘피그 파일 SQL 사이트 주소 등 정보는 수정 했어요
원래 사이트 FTP에서 데이타 폴더에서 파일 몇개 안옴겨진게 있는데
그게 문제가 있는걸까요?
답변 2개 / 댓글 8개
array_map_deep() 함수가 중복으로 즉 같은 함수가 두번 설정되어있다는 말입니다만
common.lib.php 26번행에 그런 함수가 들어있을 턱이없습니다
그누코드가 그렇게되어있다면 누구에게나 같은 에러가 나와야할테죠
common.lib.php를 최신버전으로 덮으쓰기 해보세요
방금 파일 다시 실행해보니 위에 소스가 더 늘어났네요.. 56번째 줄에 저게 있고
25 26번째 줄에
return $array;
}
이게 있어요
<?php
if (!defined('_GNUBOARD_')) exit;
/*************************************************************************
**
** 일반 함수 모음
**
*************************************************************************/
// multi-dimensional array에 사용자지정 함수적용
function array_map_deep($fn, $array)
{
if(is_array($array)) {
foreach($array as $key => $value) {
if(is_array($value)) {
$array[$key] = array_map_deep($fn, $value);
} else {
$array[$key] = call_user_func($fn, $value);
}
}
} else {
$array = call_user_func($fn, $array);
}
return $array;
}
// SQL Injection 대응 문자열 필터링
function sql_escape_string($str)
{
$pattern = '/(and|or).*(union|select|insert|update|delete|from|where|limit|create|drop).*/i';
$replace = '';
$str = preg_replace($pattern, $replace, $str);
$str = call_user_func(G5_ESCAPE_FUNCTION, $str);
return $str;
}
// 마이크로 타임을 얻어 계산 형식으로 만듦
function get_microtime()
{
list($usec, $sec) = explode(" ",microtime());
return ((float)$usec + (float)$sec);
}
// 한페이지에 보여줄 행, 현재페이지, 총페이지수, URL
function get_paging($write_pages, $cur_page, $total_page, $url, $add="")
{
//$url = preg_replace('#&page=[0-9]*(&page=)$#', '$1', $url);
$url = preg_replace('#&page=[0-9]*#', '', $url) . '&page=';
$str = '';
if ($cur_page > 1) {
$str .= '<a href="'.$url.'1'.$add.'" class="pg_page pg_start">처음</a>'.PHP_EOL;
답변에 대한 댓글 7개
지우면 이런 메시지가 나와요 Fatal error: Cannot redeclare sql_escape_string() (previously declared in C:\xampp\htdocs\g1\common.php:73) in C:\xampp\htdocs\g1\lib\common.lib.php on line 37
또 지우면
MYSQL 에러라고 나오구요...
이게 무슨 말이죠??
이 최신 버전은 또 무슨말인지.. 그누보드 최신버전이라는건지 아님
php라는건지 정말 php파일 하나에는 버전이 따로 있는게 아닌데 최신버전이라 그러니 뭐라는지 모르겠어요
php를 업뎃 하라는건가요? 그누보드를 업뎃 하라는건가요..
그누보드라면 최신버전인데..
common.php이 파일은 아예 없는데 어디 있다는건가요...
답변을 작성하려면 로그인이 필요합니다.