묻고답하기
중복 로그인 차단 성공하신분 계신가요?
2014.04.07 17:10
프로그램 구입하고 싶습니다.
연락처 남겨주시면 연락드리겠습니다
댓글 24
-
더뿌
2014.04.07 18:04
-
오병이어2
2014.04.07 19:41
이미 다 해봤는데요..^^ 안되네요
-
DynamicLaser
2014.04.07 20:14
@오병이어2 님.
프로그램 개발은 해드릴수 있는데 제가 로그인부분에 대해서 아직 완벽하게 이해를 하진 못해서 좀 엉성할수 있습니다.
그것에 대해선 양해 부탁드리고, 조금만 기간을 주실수 있나요? 제가 해보고 어느정도 사용이 된다 판단할 수준까지 가면 그때 판매하겠습니다 ^^
-
prologos
2014.04.07 21:44
코어 수정도 상관없다면 member.controller.php파일 수정으로 가능합니다.
procMemberLogin 펑션을 찾으셔서 아래 내용을 추가하면 됩니다.
단, 아래 코드는 로그인 방식을 ID로 사용할때 작동하며 며칠 테스트 했을때는 잘 작동했었습니다
이메일을 사용한다면 코드를 좀 수정해야 할겁니다
$oMemberModel = &getModel('member'); $member_info=$oMemberModel->getMemberInfoByUserID($user_id); $arg=''; $oSessionModel = &getModel('session'); $output = $oSessionModel->getLoggedMembers($arg); foreach($output->data as $key=>$val) { if($val->member_srl==$member_info->member_srl) return new Object(-1, 'already_logged'); }
-
오병이어2
2014.04.07 22:05
이 코드를 어디에 어떻게 삽입해야되는지요...
다 넣어봤는데 에러 메시지 뜨고 안되서요...
메신져 있으시면 비밀글로 적어주세요^^
-
오병이어2
2014.04.07 22:54
foreach
(
$output
->data
as
$key
=>
$val
) {
if
(
$val
->member_srl==
$member_info
->member_srl)
return
new
Object(-1,
'already_logged'
);
}
이 문장만 추가하면 에러가 나네요...
성공하셨다고 하셨는데.. 중복 로그인 안되는 사이트 샘플로 볼수있을까요?
답답하네요 ㅠㅠ
-
prologos
2014.04.08 01:31
현재 1.7.5-beta1이 설치되어 있는데 다시한번 테스트 해봤는데 우선은 잘 작동하는것처럼 보이네요.
다만 실 사용이나 오랜 시간 테스트를 하지는 못한 상태 이니 참고 하세요 @.@
1.7.5-beta1 기준으로 정확한 위치를 말씀드리면...
./modules/member/member.controller.php 35번째 줄부터 지작되는 procMemberLogin 함수내에 코드를 추가했습니다.
function procMemberLogin($user_id = null, $password = null, $keep_signed = null) { if(!$user_id && !$password && Context::getRequestMethod() == 'GET') { $this->setRedirectUrl(getNotEncodedUrl('')); return new Object(-1, 'null_user_id'); } // Variables if(!$user_id) $user_id = Context::get('user_id'); $user_id = trim($user_id); if(!$password) $password = Context::get('password'); $password = trim($password); //추가한 코드 $oMemberModel = &getModel('member'); $member_info=$oMemberModel->getMemberInfoByUserID($user_id); $arg=''; $oSessionModel = &getModel('session'); $output = $oSessionModel->getLoggedMembers($arg); foreach($output->data as $key=>$val) { if($val->member_srl==$member_info->member_srl) return new Object(-1, 'already_logged'); }
-
오병이어2
2014.04.08 11:22
세세한 설명 감사드립니다..
테스트 잘되신다고 하셨는데 그 사이트 url좀 비밀글로 부탁드릴께요
테스트아이디도 부탁드립니다..
-
prologos
2014.04.08 16:31
a3ghost.dlinkddns.com
test / test1234
실사용 사이트가 아니고 xe를 맛보는중이라 현재 깡통상태 입니다 ㅎㅎㅎ -
오병이어2
2014.04.08 17:12
prologos 님.. 덕분에 성공했습니다 감사합니다 ㅠㅠ
return new Object(-1, '현재 사용중인 아이디입니다! [경고]아이디 공유는 불법입니다!!');
이 소스에서요
'현재 사용중인 아이디입니다!
[경고]아이디 공유는 불법입니다
이렇게 2줄로 나오게 하려면 어찌해야하나요?
\n 이 안먹네요 ㅠ
-
prologos
2014.04.08 21:26
br코드 먹었던거 같은데요!? 한번 테스트 해보세요 <br/> -
오병이어2
2014.04.08 22:23
안먹네요 ㅠㅠ
첨부할께요
-
prologos
2014.04.08 22:36
xe버전 몇 사용하세요? 저는 코드내에 메시지를 직접 삽입하지 않고 lang.xml파일에 메시지 추가해서 사용하는 형식으로 방금 테스트 해봤더니 <br/>코드가 먹는거 확인 했습니다.
modules/member/lang/lang.xml
- 추가
<item name="already_logged2">
<value xml:lang="ko"><![CDATA[현재 사용중인 아이디입니다!<br/>[경고]아이디 공유는 불법입니다]]></value>
<value xml:lang="en"><![CDATA[You are already signed in.]]></value>
</item>
php파일 코드
return new Object(-1, 'already_logged2');
-
오병이어2
2014.04.08 22:38
1.4.5.10 버젼 사용중입니다
여기에는 lang.xml 이 없네요ㅠ
-
prologos
2014.04.08 22:40
헛 스샷을보니 alert();으로 경고창 뜨는거 같네요 @.@ 그렇다면 \n 이나 \r\n 이 먹어야 하는거 아닌가요? ㅠ.ㅠ
-
오병이어2
2014.04.08 22:43
이래도 안되고 저래도 안되고 ㅠㅠ
-
prologos
2014.04.08 22:45
\n\n 으로 시도 해 보세요.
-
오병이어2
2014.04.08 22:47
마찬가지네요 ㅠ
-
prologos
2014.04.08 22:50
마지막 방법... 해당 버전 살펴보니 아래 방법이 먹힐것도 같습니다 @.@
ko.lang.php
- 추가
$lang->already_logged2 = '현재 접속중인 아이디 입니다.\n[경고]아이디 공유는 불법행위 입니다.';
php코드
return new Object(-1,'already_logged2');
-
오병이어2
2014.04.08 23:08
그래도 안되네요 ㅠㅠ 어쩔수 없나봐요 ㅠㅠ
정말 신경써주셔서 감사합니다.
<br> \n , \n\n 다 해봤는데 안되네요
-
주광색
2014.07.18 16:06
위 방법대로
member.controller.php 파일을 수정했는데 안되는 이유가 뭘까요??
다른분 성공하신 분 계신가요?
-
sejin7940
2014.07.18 22:51
이 기능은 설정->일반->고급->인증세션DB사용 을 '예' 로 한 경우에만 작동합니다.
인증세션DB사용하는지 확인해보세요
-
주광색
2014.07.22 21:14
완죤최고~~ 감사합니다. 해결되었습니다.
-
멘탈가루루루루몬
2014.07.18 23:50
이 기능도 좋네요.. 팁으로 보내도 좋을 자료...
이런 게시물은 옮겨서 팁게로 보내야 할 듯.
되는지는 모르겠습니다.
http://www.xpressengine.com/qna/19856171