그누보드4에서 5로 업그레이드 이후 로그인 에러

매출이 오르면 내리는 수수료! 지금 수수료센터에서 전자결제(PG)수수료 비교견적 신청해 보세요!
그누보드4에서 5로 업그레이드 이후 로그인 에러

QA

그누보드4에서 5로 업그레이드 이후 로그인 에러

본문

 

안녕하세요?

근래 그누보드4에서 버전 5로 업그레이드를 했습니다.

이후 로그인을 했는데 오류가 아래와 같이 발생합니다.

예전 그누보드4에서 가입된 ID를 MySQL에서 불러오면서 문제가 생긴것은 아닌지 생각이 듭니다.

그러나 예전 ID 어떤 것은 오류가 나고, 어떤 ID는 오류가 안납니다.

코드를 어떻게 수정해야 하는지 도와주시면 너무 감사하겠습니다.

 

Fatal error: Uncaught mysqli_sql_exception: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '('password') as pass' at line 1 in /hosting/chemeng/html/lib/common.lib.php:1602 Stack trace: #0 /hosting/chemeng/html/lib/common.lib.php(1602): mysqli_query() #1 /hosting/chemeng/html/lib/common.lib.php(1637): sql_query() #2 /hosting/chemeng/html/lib/common.lib.php(1676): sql_fetch() #3 /hosting/chemeng/html/lib/common.lib.php(3258): sql_password() #4 /hosting/chemeng/html/bbs/login_check.php(34): login_password_check() #5 {main} thrown in /hosting/chemeng/html/lib/common.lib.php on line 1602

 

이 질문에 댓글 쓰기 :

답변 8

mysql 8은 그누보드와 호환되지 않습니다.

https://github.com/gnuboard/gnuboard5/issues/247

2023년 7월에 이 문제를 알렸지만 고쳐지지 않았습니다. 

php 및 디비 버전을 확인해 보세요...
서버에 설치되어 있는 버전이 너무 낮은것 같습니다.
 

PHP 5.2.17 이상 ( 최소버전 요구)
MySQL 5.0 이상 or MySQL 5.0 이상의 기능을 만족하는 mariaDB
리눅스 호환 OS
PHP 추천버전은 7.2 이상을 추천합니다

 

https://sir.kr/manual/g5
이곳에서 들어가서 내용을 확인해 보세요

사양이 문제가 맞습니다.

기존 호스팅의 php 버전이 낮아 현재 닷홈 호스팅의 php 버전과 호환되지 않습니다.

 

기존 호스팅에서 그누보드4 → 5 로 변환후 일부 살릴수가 있을것 같은데

기왕이면 새로 제작하시는걸 권장해드립니다.

그누4와5는 구성 환경의 문제로 발생되기에 기존 상태 그대로 업그레이드를 할수 없고 환경을 새로 셋팅후 데이터 이전 작업을 하셔야 합니다.

답변 감사합니다.

저는 닷홈호스팅 사용중이고요, 사양은 아래와 같습니다. 사양은 문제가 없을 것 같습니다.

 

웹서버 정보 : Apache 2.4
PHP 버전 : PHP 8.2
Mysql : 8.2.18

 

좋은 정보 감사합니다. 그누보드4에서 회원정보를 그누보드5로 가져오면 활용이 어렵군요.

아래 url에서 참고할 정보를 보았는데 적용이 되는 걸까요?

 

https://sir.kr/g5_tip/10358

 

제거 코드를 테스트해보니 아래 코드에서 오류가 발생했습니다.

 

function sql_password($value)
{
    // mysql 4.0x 이하 버전에서는 password() 함수의 결과가 16bytes
    // mysql 4.1x 이상 버전에서는 password() 함수의 결과가 41bytes
    $row = sql_fetch(" select password('$value') as pass ");

    return $row['pass'];
}

정말 좋은 답변을 주셔서 감사합니다.

MySQL 버번이 다른 상태에서 회원관리를 해야하니 코드를 수정해서 사영하는 방법은 

한계가 있으,므로, 조언해 주신대로 회원암호변경을 추진하도록 하겠습니다. 

회원 계정은 비번변경을 유도하여 해결할 수 있으나, 비회원으로 작성된 글, 댓글 수정에도 이 문제는 동일하니 참고하세요.


https://github.com/gnuboard/gnuboard5/blob/82648dcbfcc919ed261b29a9b3bf3705561ddc09/extend/g5_54version_update.extend.php#L5-L6
이 두 라인을 주석처리하면 비록 올바른 비번 비교는 실패하겠지만 오류 발생은 막을 수 있습니다.
(어차피 비번 비교가 불가하니 fatal error는 막아야죠)

답변을 작성하시기 전에 로그인 해주세요.
전체 126,530 | RSS
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT