로그인 기록 관리[수정 2차] > 그누4 스킨

매출이 오르면 내리는 수수료! 지금 수수료센터에서 전자결제(PG)수수료 비교견적 신청해 보세요!

그누4 스킨

스킨의 저작권은 해당 스킨 제작자님께 있으며, 그누보드의 저작권과 다를 수 있습니다.
스킨 다운로드시 좋아요와 감사의 코멘트를 남기시면 제작자에게 큰 힘이됩니다. ^^y
그누보드와 관련이 있지만 스킨과 빌더가 아니면 플러그인 게시판에 올려주세요.

로그인 기록 관리[수정 2차] 정보

기타 로그인 기록 관리[수정 2차]

첨부파일

login_check (utf-8).zip (36.1K) 118회 다운로드 2011-12-23 21:06:14
login_check (euc-kr).zip (36.0K) 43회 다운로드 2011-12-23 21:06:14

본문

위 사진처럼 로그인 시도했던 아이디,아이피 일자, 성공여부 등을 기록해놓게 만들어봤습니다.
로그인 스킨 옆에 새창으로 뛰울수있게 만드시면  좋을거 같습니다.
필요하신분 받아가세요^^
아 참고로 본인 아이디만 보입니다..

(너비는 500 픽셀 지정되있습니다.)

*설치 방법

압축을 해제하신후 sql 파일안에 있는 쿼리를 적용 하신후
나머지는 그냥 그누보드 폴더에 덮어 쒸우시면 됩니다.

*2011.12.23 20:55  이미지 누락되어있어서 재업로드 했습니다.

*2011.12.23 21:05  없는 아이디로 로그인 시도시 기록되지 않고 euc-kr 버전 추가


(백업을 하지않음으로 부터 발생되는 피해는 책임지지 않습니다.)
추천
6
  • 복사

댓글 전체

아 euc kr입니다.^^;
$number = "SELECT max(idx) FROM g4_login_data";
$re=mysql_query($number);
$num=mysql_fetch_row($re);
$idx = $num[0]+1;
 $ip=$_SERVER[REMOTE_ADDR];
$query = "INSERT INTO g4_login_data VALUES('$idx','$mb[mb_id]','$ip',now(),'실패')";
  sql_query($query);
디비넣고 로긴체크부분에 일단 요부분만 적용을 시켰는데 디비쪽에서 2개까 한꺼번에 들어가 버리네요.
login_check.php 의 25줄인
if (!$mb[mb_id] || (sql_password($mb_password) != $mb[mb_password])) {
바로 밑에

$number = "SELECT max(idx) FROM g4_login_data";
$re=mysql_query($number);
$num=mysql_fetch_row($re);
$idx = $num[0]+1;
 $ip=$_SERVER[REMOTE_ADDR];
$query = "INSERT INTO g4_login_data VALUES('$idx','$mb[mb_id]','$ip',now(),'실패')";
  sql_query($query);

이렇게 넣으시고요

조금 내려가서

// FLASH XSS 공격에 대응하기 위하여 회원의 고유키를 생성해 놓는다. 관리자에서 검사함 - 110106
set_session('ss_mb_key', md5($mb[mb_datetime] . $_SERVER['REMOTE_ADDR'] . $_SERVER['HTTP_USER_AGENT']));

여기 바로 밑에


$number = "SELECT max(idx) FROM g4_login_data";
$re=mysql_query($number);
$num=mysql_fetch_row($re);
$idx = $num[0]+1;
 $ip=$_SERVER[REMOTE_ADDR];
$query = "INSERT INTO g4_login_data VALUES('$idx','$mb[mb_id]','$ip',now(),'성공')";
  sql_query($query);

이 코드도 넣으셔야해요
아이디는 회원일때만 기록이 되네요^^; ㅎㅎ 로그인시도 아이디도 기록되는줄알았네요.ㅋㅋ insert가 2개가 되는것만 해결되면 좋은데..ㅠㅠ 왜 쿼리가 2개 가 들어가는지 몰겄네요.
약간더 간단하게 만들어 보았습니다. 디비를
CREATE TABLE IF NOT EXISTS `g4_login_data` (
  `idx` int(11) NOT NULL auto_increment,
  `mb_id` varchar(20) NOT NULL default '',
  `mb_ip` varchar(255) NOT NULL default '',
  `mb_time` varchar(255) NOT NULL default '',
  `mb_success` varchar(255) NOT NULL default '',
  PRIMARY KEY  (`idx`)

) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;

이걸로 쓰시고

실패일때
//로그인실패기록
sql_query(" insert g4_login_data set mb_id = '$mb[mb_id]', mb_ip = '$_SERVER[REMOTE_ADDR]', mb_time = '$g4[time_ymdhis]', mb_success = '실패' ");

성공일때
//로그인성공기록
sql_query(" insert g4_login_data set mb_id = '$mb[mb_id]', mb_ip = '$_SERVER[REMOTE_ADDR]', mb_time = '$g4[time_ymdhis]', mb_success = '성공' ");

소스가 간단해 지는 효과? 흐흐..

그러나 한번에 2줄 쿼리 되는건 저만 그런가 봅니다. ㅠㅠ
저거 하면
한 필드 삭제되고 다음 쿼리 들어올때 삭제된 번호 는 안찍히던데..
이건 뭐 삭제될일이 없으니 저거 써도 되겠네요 ^^
호이님 쪽지읽어보세요 ㅠ
익스8에서는 로긴성공시 2회 기록되며
크롬에서는 로긴성공시 1회 기록으로 잘 됩니다.
그리고 두 브라우저 모두~ 비번 틀릴시 실패기록이 남지 않는데... 어떤 문제인가요?? ㅠㅠ
이 프로그램은 login_check.php를 접근할때 기록되는 방식입니다...
어떤 이유로 ie에서 로그인할때 login_check.php를 2번 접근하게 되는거 같습니다.
한번 로그인 스킨을 확인 해보시는것이 좋으실듯 합니다.
© SIRSOFT
현재 페이지 제일 처음으로