09년도 euckr G4빌더를 16년도 utf8 G5빌더로 변환하려고 하는데...

09년도 euckr G4빌더를 16년도 utf8 G5빌더로 변환하려고 하는데...

QA

09년도 euckr G4빌더를 16년도 utf8 G5빌더로 변환하려고 하는데...

답변 3

본문

 

의뢰자 정보 기존서버 새서버






그누보드 버전 그누보드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 폴더로 덮어 씌워 해결이 된 상태 ^^;

 

걍 한 분만 답변 달리면 우선 채택해드릴려고 기다렸는데, 두분이나..ㅋ

 

좀 더 정확한 설명을 해주셔서 선우 님 채택했어요. 

 

그림자밟기 님이 열심히 먼저 답변주셨는데, 송구스럽습니다. ㅜㅜ

답변을 작성하시기 전에 로그인 해주세요.
QA 내용 검색
질문등록
전체 157
© SIRSOFT
현재 페이지 제일 처음으로