간단하게 관리자 접속로그를 남겨보자.

https://sir.kr/qa/540002
이 QA 보다가 간단하게 만들어보면 어떨가 싶어서 만들어봤습니다.
관리자 페이지 접근 기준으로 만들었고, 하단에 테마에 적용하는 방법도 만들어봤습니다.
아파치로그를 아예 때려넣는 방법도 생각해봤는데 DB 용량이 기하급수적으로 찰까봐서요 ㅎ
이것도 많이 차지할거 같기는 한데 전체 유저가 아니라 관리자만 남기게 해서 크게 차진 않을거같습니다.
필요하신분들은 사용하시고 DB 수시로 초기화 시키시면 될 듯 합니다.
로그 삭제 기능적으로 넣을수는 있는데..
해커가 진짜로 들어왔다는 가정하게 로그를 삭제할수도 있어서..
삭제기능은 뺐습니다.
로그 삭제를 원하시면 DB 콘솔이나 phpmyadmin 에서
truncate table g5_admin_log;
한줄 입력해주시면 됩니다.
/adm/admin.head.php 에 상단 ?> 바로 위에 아래 코드를 넣어줍니다
[code]
$db_admin_log_check = sql_fetch("SHOW TABLES LIKE 'g5_admin_log'"); // 테이블 존재 여부
if(!$db_admin_log_check) { // 없으면
sql_query("CREATE TABLE `g5_admin_log` (
`idx` int(11) NOT NULL AUTO_INCREMENT,
`ip` varchar(50) NOT NULL,
`path` varchar(255) NOT NULL,
`menu` varchar(255) NOT NULL,
`regdate` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
PRIMARY KEY (`idx`)
);"); // DB 서버 설정에 맞게 테이블이 생성 됨
} else { // 있으면
sql_query("INSERT INTO `g5_admin_log` (`idx`, `ip`, `path`, `menu`, `regdate`) VALUES (NULL, '".$_SERVER['REMOTE_ADDR']."', '".$_SERVER['REQUEST_URI']."', '".$g5['title']."', '".G5_TIME_YMDHIS."');"); // 로그 남김
}
[/code]
위에껄로 안되면 아래껄로 시도해보시기 바랍니다.
[code]
$db_admin_log_check = sql_fetch("SELECT COUNT(*) as cnt FROM Information_schema.tables WHERE table_schema = 'DB명' AND table_name = 'g5_admin_log'"); // 테이블 존재 여부
if($db_admin_log_check['cnt']=="0") { // 없으면
sql_query("CREATE TABLE `g5_admin_log` (
`idx` int(11) NOT NULL AUTO_INCREMENT,
`ip` varchar(50) NOT NULL,
`path` varchar(255) NOT NULL,
`menu` varchar(255) NOT NULL,
`regdate` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
PRIMARY KEY (`idx`)
);"); // DB 서버 설정에 맞게 테이블이 생성 됨
} else { // 있으면
sql_query("INSERT INTO `g5_admin_log` (`idx`, `ip`, `path`, `menu`, `regdate`) VALUES (NULL, '".$_SERVER['REMOTE_ADDR']."', '".$_SERVER['REQUEST_URI']."', '".$g5['title']."', '".G5_TIME_YMDHIS."');"); // 로그 남김
}
[/code]
정 안되면 create 쿼리문만 복사하셔서 테이블 생성하시고 insert 문 쿼리만 붙여넣으시면 됩니다.
admin.menu100.php 에 매뉴 출력을 위해 해당 라인을 추가해줍니다.
[code]
array('100940', '관리자 로그', G5_ADMIN_URL . '/admin_log.php', 'admin_log')
[/code]
동봉된 첨부파일을 /adm/ 폴더에 넣어줍니다.
이후 접속하시면 됩니다 :)
혹 일반페이지에서도 로그 작성을 원하시면
테마폴더의 head.php ?> 바로 윗라인에 아래와 같이 $is_admin 으로 감싸서 넣으시면 됩니다.
[code]
if($is_admin) {
$db_admin_log_check = sql_fetch("SHOW TABLES LIKE 'g5_admin_log'"); // 테이블 존재 여부
if(!$db_admin_log_check) { // 없으면
sql_query("CREATE TABLE `g5_admin_log` (
`idx` int(11) NOT NULL AUTO_INCREMENT,
`ip` varchar(50) NOT NULL,
`path` varchar(255) NOT NULL,
`menu` varchar(255) NOT NULL,
`regdate` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
PRIMARY KEY (`idx`)
);"); // DB 서버 설정에 맞게 테이블이 생성 됨
} else { // 있으면
sql_query("INSERT INTO `g5_admin_log` (`idx`, `ip`, `path`, `menu`, `regdate`) VALUES (NULL, '".$_SERVER['REMOTE_ADDR']."', '".$_SERVER['REQUEST_URI']."', '".$g5['title']."', '".G5_TIME_YMDHIS."');"); // 로그 남김
}
}
[/code]
간단하게 만들어보았는데 추가 로그를 확인하고 싶으신분은
코멘트 남겨주시면 업데이트 해보겠습니다 ㅎ
----------------------------------------------------
## 2024-07-29 19:00:00 내용 수정
CREATE TABLE 선언 쿼리 내용을 수정했습니다. ( idx 필드 primary key 선언 + AUTO_INCREMENT 선언 )
해당 시간 이전에 적용하신 분들은 테이블 삭제후에 다시 적용해주세요!
댓글 10개
감사합니다^^
감사합니다. 일단 설치까지는 했는데 기록이 안됩니다. ㅠㅠ
admin.head.php 상단위에 넣었는데 안되네요. 5.6 버전 사용중 입니다.
@페레이라
1. 테이블이 제대로 생성됐는지 확인해주세요
2. 로그가 남겨져 있는지 확인해주세요.
로그가 안남겨지면 SHOW TABLES LIKE 'g5_admin_log' 이거 문제일 가능성이 큰데..
위의 show tables 쿼리가 먹지 않으면 아래 쿼리로 수정해서 넣어줘보세요.
[code]
SELECT COUNT(*) FROM Information_schema.tables WHERE table_schema = 'DB명' AND table_name = '테이블명'
[/code]
3. 그래도 안되면 mysql create 선언문을 복사하시고 밑에
[code]
sql_query("INSERT INTO `g5_admin_log` (`idx`, `ip`, `path`, `menu`, `regdate`) VALUES (NULL, '".$_SERVER['REMOTE_ADDR']."', '".$_SERVER['REQUEST_URI']."', '".$g5['title']."', '".G5_TIME_YMDHIS."');");
[/code]
이 부분만 admin.head.php 에 넣어주세요
@간장게장같은남자
테이블 설치는 되었습니다.
시키는데로 3번을 해도 동일 합니다.
이유를 모르겠네요. 안돼면 한번 재설치 해보겠습니다.
@페레이라 아 DB 생성쪽에 문제가 있네요 ㅠㅠ 글 수정하겠습니다.
@페레이라 내용 수정했습니다!
테이블 생성쿼리에 primary key 하고 AUTO_INCREMENT 설정을 빠트렷네요 ㅠ
@간장게장같은남자
감사합니다. 너무 잘됩니다 ㅎㅎ
수고 하셨습니다.
감사합니다
혹시 원하시는 팁이 있으시면 말씀해주세요~
제작의뢰에 갈만큼 어려운것이 아니면 뚝딱 만들어보겠습니다 ㅎ
게시판 목록
그누보드5 팁자료실
| 번호 | 제목 | 글쓴이 | 날짜 | 조회 |
|---|---|---|---|---|
| 공지 | 3년 전 | 4402 | ||
| 2274 | 2년 전 | 2065 | ||
| 2273 |
|
2년 전 | 1486 | |
| 2272 | 2년 전 | 2468 | ||
| 2271 | 2년 전 | 2069 | ||
| 2270 |
|
2년 전 | 2089 | |
| 2269 |
|
2년 전 | 1891 | |
| 2268 | 2년 전 | 3846 | ||
| 2267 | 2년 전 | 2898 | ||
| 2266 |
|
2년 전 | 2122 | |
| 2265 | 2년 전 | 1642 | ||
| 2264 | 2년 전 | 2123 | ||
| 2263 | 2년 전 | 1991 | ||
| 2262 | 2년 전 | 1540 | ||
| 2261 |
|
2년 전 | 1452 | |
| 2260 | 2년 전 | 2441 | ||
| 2259 |
welcome
|
2년 전 | 1778 | |
| 2258 |
welcome
|
2년 전 | 1305 | |
| 2257 | 2년 전 | 3052 | ||
| 2256 | 2년 전 | 1316 | ||
| 2255 |
|
2년 전 | 1822 | |
| 2254 | 2년 전 | 1796 | ||
| 2253 |
welcome
|
2년 전 | 1570 | |
| 2252 |
welcome
|
2년 전 | 1341 | |
| 2251 | 2년 전 | 2395 | ||
| 2250 | 2년 전 | 2031 | ||
| 2249 | 2년 전 | 1817 | ||
| 2248 | 2년 전 | 1626 | ||
| 2247 | 2년 전 | 2053 | ||
| 2246 | 2년 전 | 2465 | ||
| 2245 | 2년 전 | 1917 |
댓글 작성
댓글을 작성하시려면 로그인이 필요합니다.
로그인하기