원래 사이트에서 로컬로 파일 이동하고나서 사이트 들어가니 이런 메시지가 나와요 채택완료
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개
array_map_deep() 함수가 중복으로 즉 같은 함수가 두번 설정되어있다는 말입니다만
common.lib.php 26번행에 그런 함수가 들어있을 턱이없습니다
그누코드가 그렇게되어있다면 누구에게나 같은 에러가 나와야할테죠
common.lib.php를 최신버전으로 덮으쓰기 해보세요
답변에 대한 댓글 1개
댓글을 작성하려면 로그인이 필요합니다.
방금 파일 다시 실행해보니 위에 소스가 더 늘어났네요.. 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개
저 함수를 지우거나 최신버젼으로 교체하면 됩니다
}만 지워보고
25번 26번 줄 지워보고
25번줄만 지워보고
해봐도 안되던뎅..
덮어쓰기는 어떻게 하느냐구요?
ftp로 같은 화일을 업로드하면 덮어쓰기가 되는거죠
함수가 무언지 덮어쓰기를 어떻게 하는지를 모르고서 홈페이지를 무슨 재주로 만들었는지...
파일 복사해서 하는건 할줄 알져
근데 그거해도 똑같아서 질문을 하는거에요
원래 사이트에선 이 소스로 되어있고 그대로 복사해서 가져온건데
로컬에서만 이렇게 오류가 나와서요
그리고 최신버전이라 그래서 프로그램이면 업데이트가 있으면 하는데
이건 업데이트 자체가 없으니...
지우면 이런 메시지가 나와요 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이 파일은 아예 없는데 어디 있다는건가요...
제 php버전이랑 안맞아서 그렇다는 건가요??
알수있게 적어주세요...
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인