며칠전(2월18일경)부터 사용자로긴이 안됩니다.
본문
- 그누보드 버전
define('G5_VERSION', '그누보드5');
define('G5_GNUBOARD_VER', '5.2.6');
- MySQL 버전
Server version: 5.1.73
사용자ID와 비번을 맞게 입력해도 bbs/login_check.php 의
include_once('./_common.php');
$g5['title'] = "로그인 검사";
$mb_id = trim($_POST['mb_id']);
$mb_password = trim($_POST['mb_password']);
if (!$mb_id || !$mb_password)
alert('회원아이디나 비밀번호가 공백이면 안됩니다.');
$mb = get_member($mb_id);
if (!$mb['mb_id'] || !check_password($mb_password, $mb['mb_password'])) {
alert('가입된 회원아이디가 아니거나 비밀번호가 틀립니다.\\n비밀번호는 대소문자를 구분합니다.');
}
그 전에 특별한 작업이 없었고, 몇년간 잘 운영되었었는데, 갑자기 빨간색 부분에서 에러가 나는 것 같습니다.
lib/common.lib.php 에 check_password()가 정의되어 있더군요
function get_encrypt_string($str)
{
if(defined('G5_STRING_ENCRYPT_FUNCTION') && G5_STRING_ENCRYPT_FUNCTION) {
$encrypt = call_user_func(G5_STRING_ENCRYPT_FUNCTION, $str);
} else {
$encrypt = sql_password($str);
}
return $encrypt;
}
function check_password($pass, $hash)
{
$password = get_encrypt_string($pass);
// $password = old_password($pass);
return ($password === $hash);
}
물론 특정사용자를 php 스크립트로 비번변경하니 로긴은 다시 됩니다만, 디비변경같은 작업이 없었는데도 불구하고 이런 현상이 발생했습니다. 고견 미리 감사합니다.
답변 4
하드 공간 여유있는지 체크해 보세요.
코드 안 만졌는데 로그인 안 되는 경우면 십중팔구 이 문제일 듯 싶네요.
ssl 인증 도메인 확인해보시기 바랍니다.
비밀번호가 틀리다고 나오시는 건가요? 아니면 그냥 넘어가지만 로그인이 안된 상태인가요?
<?php
include_once('./_common.php');
$mb_id = "admin"; // 변경하려는 사용자 ID
$new_password = "your_password"; // 새 비밀번호
// 그누보드에서 비밀번호는 get_encrypt_string 함수를 이용하여 암호화됩니다.
// 이 함수는 내부적으로 SHA256을 이용합니다.
$new_password_hashed = get_encrypt_string($new_password);
$sql = "UPDATE {$g5['member_table']}
SET mb_password = '".$new_password_hashed."'
WHERE mb_id = '".$mb_id."' ";
sql_query($sql);
?>
요런식으로 강제변경하면 로긴이 잘 됩니다.