09년도 euckr G4빌더를 16년도 utf8 G5빌더로 변환하려고 하는데...
본문
의뢰자 정보 | 기존서버 | 새서버 |
그누보드 버전 | 그누보드4 - 4.31.11 (09.07.14) | 그누보드5 최신 버전 |
서버 PHP 버전 | php 4.4.6 | php 5.525 |
서버 DB 버전 | 5.5.47-MariaDB | MySQL 5.5 |
서버 언어셋 | EUC-KR | UTF-8 |
혹시, 주의사항이나 신경쓸 거 있으면 조언 부탁드립니다.
현재, 그누보드4 - 4.31.11 (09.07.14) 원본을 새 서버에 설치 후 로그인하려 할 경우,
아래 에러가 출려됩니다. (아마도, 자료를 이전해 복원해도 같은 에러가 날 듯 싶네요.)
Fatal error: Call to undefined function session_register() in /home1/사용자/hz/lib/common.lib.php on line 91
작업 전 혹시 놓친 부분이 없나 확인 차 문의드리는 것이니,
걍 부담갖지 마시고 답변해 주세요. ^^
답변 3
session_register() 함수는 PHP 5.3.0부터 사용하지 않는 것으로 알고 있습니다.
http://php.net/manual/kr/function.session-register.php
그런데 그누보드4 - 4.31.11 의 set_session() 함수에 포함된 session_register() 함수는 실행 전에
최신버전의 그누보드처럼 PHP 버전 비교를 하지 않고 있습니다.
그렇기 때문에 그누보드4 - 4.31.11를 php 5.525 환경에서 사용할 경우 필연적으로 발생하는 에러입니다.
에러를 해결하려면 그누보드4 최신버전을 사용하시든지,
아니면 common.lib.php 파일의 set_session() 함수를 다음과 같이 수정하셔야 합니다.
// 세션변수 생성
function set_session($session_name, $value)
{
if (PHP_VERSION < '5.3.0') // <-- 이 부분 추가함
session_register($session_name);
// PHP 버전별 차이를 없애기 위한 방법
$$session_name = $_SESSION["$session_name"] = $value;
}
제 기억상 php 버전 문제인듯 한데
common.lib.php
@session_register($session_name); 요거 주석처리 하면 되었던 걸로 기억합니다.
// 세션변수 생성
function set_session($session_name, $value)
{
// @session_register($session_name);
// PHP 버전별 차이를 없애기 위한 방법
$$session_name = $_SESSION["$session_name"] = $value;
}
답변해주신 두 분 모두 감사합니다.
사실, 이미 그 부분은 최신 버전 lib 폴더로 덮어 씌워 해결이 된 상태 ^^;
걍 한 분만 답변 달리면 우선 채택해드릴려고 기다렸는데, 두분이나..ㅋ
좀 더 정확한 설명을 해주셔서 선우 님 채택했어요.
그림자밟기 님이 열심히 먼저 답변주셨는데, 송구스럽습니다. ㅜㅜ