그누보드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에서 참고할 정보를 보았는데 적용이 되는 걸까요?
제거 코드를 테스트해보니 아래 코드에서 오류가 발생했습니다.
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 버번이 다른 상태에서 회원관리를 해야하니 코드를 수정해서 사영하는 방법은
한계가 있으,므로, 조언해 주신대로 회원암호변경을 추진하도록 하겠습니다.