[CODE]
// 중복 로그인 방지 시작
$mb_id = $_POST[mb_id];
$mb = get_member($mb_id);
$session_dir = $g4['path'] . "/data/session";
$d = dir($session_dir);
while (false != ($entry = $d->read())) {
$temp = file($session_dir . '/' . $entry);
if (preg_match("`ss_mb_id\|[^;]*\"" . $mb[mb_id] . "\";`", $temp[0])) {
//세션디렉토리 설정
$session_dir = $g4['path'] . "/data/session";
$d = dir($session_dir);
while (false !== ($entry = $d->read())) {
if (substr($entry, 0, 1) != '.' && $entry != 'index.php'){
$temp = file($session_dir . '/' . $entry);
if (preg_match("`ss_mb_id\|[^;]*\"" . $mb[mb_id] . "\";`", $temp[0])) {
unlink($session_dir . '/' . $entry);
}
}
}
alert("회원님의 아이디 {$mb[mb_id]} 는 이미 접속 중입니다.\\n\\n보안상 중복으로 접속하실 수 없어 이전 접속을 종료합니다.\\n\\n이 경고창이 계속 발생할 경우 비밀번호 변경을 해주세요.\\n\\n비밀번호 변경 후 지속적으로 이 경고창이 발생할 경우 관리자에게 문의해주세요.", $g4[path]);
}
}
// 중복 로그인 방지 끝
[/CODE]
출처 : https://sir.kr/g4_tiptech/10498 (PhotoFly 님)
오래전에 팁이라서 그런지 안되서 살작 고쳐서 사용중인 방법 입니다.
skin/member/login_check.skin.php 에 추가만 해주면 됩니다.
// 중복 로그인 방지 시작
$mb_id = $_POST[mb_id];
$mb = get_member($mb_id);
$session_dir = $g4['path'] . "/data/session";
$d = dir($session_dir);
while (false != ($entry = $d->read())) {
$temp = file($session_dir . '/' . $entry);
if (preg_match("`ss_mb_id\|[^;]*\"" . $mb[mb_id] . "\";`", $temp[0])) {
//세션디렉토리 설정
$session_dir = $g4['path'] . "/data/session";
$d = dir($session_dir);
while (false !== ($entry = $d->read())) {
if (substr($entry, 0, 1) != '.' && $entry != 'index.php'){
$temp = file($session_dir . '/' . $entry);
if (preg_match("`ss_mb_id\|[^;]*\"" . $mb[mb_id] . "\";`", $temp[0])) {
unlink($session_dir . '/' . $entry);
}
}
}
alert("회원님의 아이디 {$mb[mb_id]} 는 이미 접속 중입니다.\\n\\n보안상 중복으로 접속하실 수 없어 이전 접속을 종료합니다.\\n\\n이 경고창이 계속 발생할 경우 비밀번호 변경을 해주세요.\\n\\n비밀번호 변경 후 지속적으로 이 경고창이 발생할 경우 관리자에게 문의해주세요.", $g4[path]);
}
}
// 중복 로그인 방지 끝
[/CODE]
출처 : https://sir.kr/g4_tiptech/10498 (PhotoFly 님)
오래전에 팁이라서 그런지 안되서 살작 고쳐서 사용중인 방법 입니다.
skin/member/login_check.skin.php 에 추가만 해주면 됩니다.
댓글 9개
올려주신 소스는 그누보드 4로 작성 된 소스이군요.
그누보드 5에 적용가능한 소스로 수정했습니다.
// 중복 로그인 방지 시작 ----- {
$mb_id = $_POST[mb_id];
$mb = get_member($mb_id);
$session_dir = G5_DATA_PATH."/session";
$d = dir($session_dir);
while (false != ($entry = $d->read())) {
$temp = file($session_dir . '/' . $entry);
if (preg_match("`ss_mb_id\|[^;]*\"" . $mb[mb_id] . "\";`", $temp[0])) {
//세션디렉토리 설정
$session_dir = G5_DATA_PATH."/session";
$d = dir($session_dir);
while (false !== ($entry = $d->read())) {
if (substr($entry, 0, 1) != '.' && $entry != 'index.php'){
$temp = file($session_dir . '/' . $entry);
if (preg_match("`ss_mb_id\|[^;]*\"" . $mb[mb_id] . "\";`", $temp[0])) {
unlink($session_dir . '/' . $entry);
}
}
}
alert("회원님의 아이디 {$mb[mb_id]} 는 이미 접속 중입니다.\\n\\n보안상 중복으로 접속하실 수 없어 이전 접속을 종료합니다.\\n\\n이 경고창이 계속 발생할 경우 비밀번호 변경을 해주세요.\\n\\n비밀번호 변경 후 지속적으로 이 경고창이 발생할 경우 관리자에게 문의해주세요.", G5_URL);
}
}
// ----- } 중복 로그인 방지 끝
위 소스를
/theme/적용할테마명/skin/member/login_check.skin.php 에 추가하시면 동작됩니다.
그누보드 5에 적용가능한 소스로 수정했습니다.
// 중복 로그인 방지 시작 ----- {
$mb_id = $_POST[mb_id];
$mb = get_member($mb_id);
$session_dir = G5_DATA_PATH."/session";
$d = dir($session_dir);
while (false != ($entry = $d->read())) {
$temp = file($session_dir . '/' . $entry);
if (preg_match("`ss_mb_id\|[^;]*\"" . $mb[mb_id] . "\";`", $temp[0])) {
//세션디렉토리 설정
$session_dir = G5_DATA_PATH."/session";
$d = dir($session_dir);
while (false !== ($entry = $d->read())) {
if (substr($entry, 0, 1) != '.' && $entry != 'index.php'){
$temp = file($session_dir . '/' . $entry);
if (preg_match("`ss_mb_id\|[^;]*\"" . $mb[mb_id] . "\";`", $temp[0])) {
unlink($session_dir . '/' . $entry);
}
}
}
alert("회원님의 아이디 {$mb[mb_id]} 는 이미 접속 중입니다.\\n\\n보안상 중복으로 접속하실 수 없어 이전 접속을 종료합니다.\\n\\n이 경고창이 계속 발생할 경우 비밀번호 변경을 해주세요.\\n\\n비밀번호 변경 후 지속적으로 이 경고창이 발생할 경우 관리자에게 문의해주세요.", G5_URL);
}
}
// ----- } 중복 로그인 방지 끝
위 소스를
/theme/적용할테마명/skin/member/login_check.skin.php 에 추가하시면 동작됩니다.
@sosososo 관리자를 인식하는 부분이 각자의 프로그램마다 다를 듯해서 기본적인 원리 부터 적어보겠습니다.
1) 원리는 간단합니다.
while문을 통해 중복 로그인인지 아닌지를 찾도록 되어 있습니다.
따라서 관리자로 인식되면
while 문 이하를 실행하지 않으면 됩니다.
2) 관리자 인식
특정 ID를 인식할 수도 있고, 계정의 Level로 인식 할수도 있고, 슈퍼유저를 관리자로 인식하는 방법도 있고... 관리자 인식방법은 다양합니다.
계정의 Level 등급이 9이상이면 관리자로 인식하다고 가정하면
// 중복 로그인 방지 시작 ----- {
$mb_id = $_POST[mb_id];
$mb = get_member($mb_id);
if ($mb['level'] < 9) {
$session_dir = G5_DATA_PATH."/session";
$d = dir($session_dir);
while (false != ($entry = $d->read())) {
$temp = file($session_dir . '/' . $entry);
if (preg_match("`ss_mb_id\|[^;]*\"" . $mb[mb_id] . "\";`", $temp[0])) {
//세션디렉토리 설정
$session_dir = G5_DATA_PATH."/session";
$d = dir($session_dir);
while (false !== ($entry = $d->read())) {
if (substr($entry, 0, 1) != '.' && $entry != 'index.php'){
$temp = file($session_dir . '/' . $entry);
if (preg_match("`ss_mb_id\|[^;]*\"" . $mb[mb_id] . "\";`", $temp[0])) {
unlink($session_dir . '/' . $entry);
}
}
}
alert("회원님의 아이디 {$mb[mb_id]} 는 이미 접속 중입니다.\\n\\n보안상 중복으로
접속하실 수 없어 이전 접속을 종료합니다.\\n\\n이 경고창이 계속 발생할 경우 비밀번호 변경을 해주세요.\\n\\n비밀번호 변경 후 지속적으로 이 경고창이 발생할 경우 관리자에게 문의해주세요.", G5_URL);
}
}
}
// ----- } 중복 로그인 방지 끝
위 소스를
/theme/적용할테마명/skin/member/login_check.skin.php 에 추가하시면 동작 됩니다.
위와 같이 작성하시면 됩니다.
1) 원리는 간단합니다.
while문을 통해 중복 로그인인지 아닌지를 찾도록 되어 있습니다.
따라서 관리자로 인식되면
while 문 이하를 실행하지 않으면 됩니다.
2) 관리자 인식
특정 ID를 인식할 수도 있고, 계정의 Level로 인식 할수도 있고, 슈퍼유저를 관리자로 인식하는 방법도 있고... 관리자 인식방법은 다양합니다.
계정의 Level 등급이 9이상이면 관리자로 인식하다고 가정하면
// 중복 로그인 방지 시작 ----- {
$mb_id = $_POST[mb_id];
$mb = get_member($mb_id);
if ($mb['level'] < 9) {
$session_dir = G5_DATA_PATH."/session";
$d = dir($session_dir);
while (false != ($entry = $d->read())) {
$temp = file($session_dir . '/' . $entry);
if (preg_match("`ss_mb_id\|[^;]*\"" . $mb[mb_id] . "\";`", $temp[0])) {
//세션디렉토리 설정
$session_dir = G5_DATA_PATH."/session";
$d = dir($session_dir);
while (false !== ($entry = $d->read())) {
if (substr($entry, 0, 1) != '.' && $entry != 'index.php'){
$temp = file($session_dir . '/' . $entry);
if (preg_match("`ss_mb_id\|[^;]*\"" . $mb[mb_id] . "\";`", $temp[0])) {
unlink($session_dir . '/' . $entry);
}
}
}
alert("회원님의 아이디 {$mb[mb_id]} 는 이미 접속 중입니다.\\n\\n보안상 중복으로
접속하실 수 없어 이전 접속을 종료합니다.\\n\\n이 경고창이 계속 발생할 경우 비밀번호 변경을 해주세요.\\n\\n비밀번호 변경 후 지속적으로 이 경고창이 발생할 경우 관리자에게 문의해주세요.", G5_URL);
}
}
}
// ----- } 중복 로그인 방지 끝
위 소스를
/theme/적용할테마명/skin/member/login_check.skin.php 에 추가하시면 동작 됩니다.
위와 같이 작성하시면 됩니다.
게시글 목록
| 번호 | 제목 |
|---|---|
| 34021 | |
| 33994 | |
| 33922 | |
| 33895 | |
| 33889 | |
| 33882 | |
| 33868 |
최신글
최신글 함수 개량
11
|
| 33863 | |
| 33859 | |
| 33857 | |
| 33849 | |
| 33842 | |
| 33835 | |
| 33830 | |
| 33828 | |
| 33807 | |
| 33797 | |
| 33796 | |
| 33791 | |
| 33786 |
댓글 작성
댓글을 작성하시려면 로그인이 필요합니다.
로그인하기