최고관리자 자동로그인 가능하게 하기 정보
최고관리자 자동로그인 가능하게 하기첨부파일
본문
그누보드에는 자동로그인 기능이 있어 유용합니다.
하지만 최고관리자는 보안 때문에 자동로그인을 사용할 수 없게 되어있습니다.
자동로그인에 관한 코드는 common.php 에 있습니다.
최고관리자도 자동로그인이 되도록 하려면 common.php 파일을 수정해야 합니다.
하지만 그누보드의 원본을 수정하게 되면 추후 업데이트시 곤란한 상황이 발생할 수 있습니다.
그누보드에서는 이러한 상황을 위해 확장기능을 extend 디렉토리에 추가할 수 있게 되어있습니다.
extend 디렉토리에 php 파일을 만들어 업로드 해두면 자동으로 읽어 실행하죠.
최고관리자의 자동로그인 기능 또한 코드를만들어 extend 에 업로드 해두면 쉽게 구현할 수 있습니다.
이 게시물의 첨부파일을 다운로드하셔도 되고 아래 코드를 이용해 직접 파일을 만들어 extend 디렉토리에 업로드 하시면 됩니다.
하지만 최고관리자는 보안 때문에 자동로그인을 사용할 수 없게 되어있습니다.
자동로그인에 관한 코드는 common.php 에 있습니다.
최고관리자도 자동로그인이 되도록 하려면 common.php 파일을 수정해야 합니다.
하지만 그누보드의 원본을 수정하게 되면 추후 업데이트시 곤란한 상황이 발생할 수 있습니다.
그누보드에서는 이러한 상황을 위해 확장기능을 extend 디렉토리에 추가할 수 있게 되어있습니다.
extend 디렉토리에 php 파일을 만들어 업로드 해두면 자동으로 읽어 실행하죠.
최고관리자의 자동로그인 기능 또한 코드를만들어 extend 에 업로드 해두면 쉽게 구현할 수 있습니다.
이 게시물의 첨부파일을 다운로드하셔도 되고 아래 코드를 이용해 직접 파일을 만들어 extend 디렉토리에 업로드 하시면 됩니다.
<?
if (!defined("_GNUBOARD_")) exit; // 개별 페이지 접근 불가
// 자동로그인 ---------------------------------------
if (!$_SESSION['ss_mb_id'])
// 회원아이디가 쿠키에 저장되어 있다면 (3.27)
if ($tmp_mb_id = get_cookie("ck_mb_id"))
{
$sql = " select mb_password, mb_intercept_date, mb_leave_date, mb_email_certify
from {$g4['member_table']} where mb_id = '$tmp_mb_id' ";
$row = sql_fetch($sql);
$key = md5($_SERVER['SERVER_ADDR'] . $_SERVER['REMOTE_ADDR'] . $_SERVER['HTTP_USER_AGENT'] . $row['mb_password']);
// 쿠키에 저장된 키와 같다면
$tmp_key = get_cookie("ck_auto");
if ($tmp_key == $key && $tmp_key)
{
// 차단, 탈퇴가 아니고 메일인증이 사용이면서 인증을 받았다면
if ($row['mb_intercept_date'] == "" &&
$row['mb_leave_date'] == "" &&
(!$config['cf_use_email_certify'] || preg_match('/[1-9]/', $row['mb_email_certify'])) )
{
// 세션에 회원아이디를 저장하여 로그인으로 간주
set_session("ss_mb_id", $tmp_mb_id);
// 페이지를 재실행
echo "<script language='javascript'> window.location.reload(); </script>";
exit;
}
}
// $row 배열변수 해제
unset($row);
}
// 자동로그인 end ---------------------------------------
?>
if (!defined("_GNUBOARD_")) exit; // 개별 페이지 접근 불가
// 자동로그인 ---------------------------------------
if (!$_SESSION['ss_mb_id'])
// 회원아이디가 쿠키에 저장되어 있다면 (3.27)
if ($tmp_mb_id = get_cookie("ck_mb_id"))
{
$sql = " select mb_password, mb_intercept_date, mb_leave_date, mb_email_certify
from {$g4['member_table']} where mb_id = '$tmp_mb_id' ";
$row = sql_fetch($sql);
$key = md5($_SERVER['SERVER_ADDR'] . $_SERVER['REMOTE_ADDR'] . $_SERVER['HTTP_USER_AGENT'] . $row['mb_password']);
// 쿠키에 저장된 키와 같다면
$tmp_key = get_cookie("ck_auto");
if ($tmp_key == $key && $tmp_key)
{
// 차단, 탈퇴가 아니고 메일인증이 사용이면서 인증을 받았다면
if ($row['mb_intercept_date'] == "" &&
$row['mb_leave_date'] == "" &&
(!$config['cf_use_email_certify'] || preg_match('/[1-9]/', $row['mb_email_certify'])) )
{
// 세션에 회원아이디를 저장하여 로그인으로 간주
set_session("ss_mb_id", $tmp_mb_id);
// 페이지를 재실행
echo "<script language='javascript'> window.location.reload(); </script>";
exit;
}
}
// $row 배열변수 해제
unset($row);
}
// 자동로그인 end ---------------------------------------
?>
추천
10
10
댓글 11개
와우 감사합니다. ^^; 바로 해야쥐~
감사합니다..
퍼가겠습니다..
퍼가겠습니다..
굿~감사감사~
와우~ 완벽해요~
진짜 좋아요...
진짜 좋아요...
너무너무 유용하게 사용했습니다.
감사합니다.
감사합니다.
히야..정말 신기하네요.이것 때문에 무척 고생했는데 잘 됩니다. 감사드립니다.
아까 되었는데 다시 해보니 안되네요.ㅠㅠ. 왜 그럴까요?
감사 합니다....
설치했는데...utf8 버전인데
홈피 전체 화면이 한글깨짐이으로 보임니다
다시 홈피를 로딩하면 한글이 이상 없고....
utf8로 강제 설정하는 방법을 부탁 드립니다.
설치했는데...utf8 버전인데
홈피 전체 화면이 한글깨짐이으로 보임니다
다시 홈피를 로딩하면 한글이 이상 없고....
utf8로 강제 설정하는 방법을 부탁 드립니다.
일일이 common.php 를 수정하여 사용하였었는데,
이런 방법도 있군요.
잘 사용하겠습니다.
감사합니다.
이런 방법도 있군요.
잘 사용하겠습니다.
감사합니다.
아, 이거 설정하였다가,
쌩 고생하였습니다.
언제부터인지 모르고 kcaptcha가 작동되지 않아서, 원인을 모른채 헤맸습니다.
캐차에 숫자 이미지가 나타나지 않으니, 회원가입도 안되고, 상담게시판 글쓰기도 안되는 현상이 발생하였습니다.
하나하나씩 벌레잡기를 해본 끝에 위의 소스가 캐차를 작동되지 않게 한다는 것을 알게되었습니다.
원인을 찾았기에 망정이지 몇 시간동안 엄청 큰 스트레스를 받았습니다.
참고하시기를...
쌩 고생하였습니다.
언제부터인지 모르고 kcaptcha가 작동되지 않아서, 원인을 모른채 헤맸습니다.
캐차에 숫자 이미지가 나타나지 않으니, 회원가입도 안되고, 상담게시판 글쓰기도 안되는 현상이 발생하였습니다.
하나하나씩 벌레잡기를 해본 끝에 위의 소스가 캐차를 작동되지 않게 한다는 것을 알게되었습니다.
원인을 찾았기에 망정이지 몇 시간동안 엄청 큰 스트레스를 받았습니다.
참고하시기를...
// 관리자의 아이피, 브라우저와 다르다면 세션을 끊고 관리자에게 메일을 보낸다.
$admin_key = md5($member[mb_datetime] . $_SERVER['REMOTE_ADDR'] . $_SERVER['HTTP_USER_AGENT']);
관리자 모드는 정상적으로 접근하라고 로그인이 안되는데 어떻게 해야하나요^^
배추빌더님^^
$admin_key = md5($member[mb_datetime] . $_SERVER['REMOTE_ADDR'] . $_SERVER['HTTP_USER_AGENT']);
관리자 모드는 정상적으로 접근하라고 로그인이 안되는데 어떻게 해야하나요^^
배추빌더님^^