안녕하세요, 첫 글부터 질문 글이라니 참 부끄럽네요...
고수님들의 도움을 구하고자 끄적여봅니다.
현재 URL 패러미터를 닉네임으로 받아서,
그 닉네임을 회원번호로 전환한 후,
포인트 관련해서 이것저것 끄적여보고 있습니다.
닉네임을 회원번호로 받아오려면 DB에서 받아와야 할텐데,
방법이 있나요?
제가 할줄 아는 것 내에서는 URL 패러미터를 받아서,
현재 로그인한 회원 닉네임과 일치하는가를 확인하는것 밖에 없네요 ㅠㅠ
// URL 패러미터 받아서 처리
$stn_nick = $_GET['stn'];
// 닉네임 일치하나 확인
if (($logged_info->nick_name) == $stn_nick) {
echo "신원확인 끝!";
}
else {
echo "엥? 누구세요?";
}
$stn_nick = $_GET['stn'];
// 닉네임 일치하나 확인
if (($logged_info->nick_name) == $stn_nick) {
echo "신원확인 끝!";
}
else {
echo "엥? 누구세요?";
}
지금 이런식으로 외부 PHP 파일을 만들고 있습니다..
어이없을 정도로 간단할수도 있지만 워낙 초보라.. 부탁드립니다 ㅠㅠ
댓글 11
https://xe1.xpressengine.com/qna/19103617
고유번호를 가지고 다른 정보를 가져오는 방법
https://github.com/xpressengine/xe-core/tree/master/modules/member/queries
(getMemberInfo로 시작하는 쿼리문들을 보세요.)
회원정보에서 고유값이라고 볼수 있는 아이디, 고유번호, 이메일로만 가져오네요.
getMemberInfoByMemberSrl.xml
요 파일을 응용해서
getMemberInfoByNickName.xml
<query id="getMemberInfoByNickName" action="select">
<tables>
<table name="member" />
</tables>
<columns>
<column name="*" />
</columns>
<conditions>
<condition operation="equal" column="nick_name" var="nick_name" notnull="notnull" />
</conditions>
</query>
요런 파일을 만들어서 쿼리 폴더에 넣고
$oMemberModel = &getModel('member');
$member_info = $oMemberModel->getMemberInfoByNickName(닉네임변수);
$회원번호변수 = $member_info->member_srl
요렇게 하면 되지 않을가 하는데...
xe에 쿼리문 추가하는게 저렇게만 넣으면 되는지, 모듈의 다른 부분을 수정해야 하는지까지는 모르겠습니다.
xe는 대강 유져라서요.
이게 안되면 db를 직접 쿼리해서 member_srl을 찾아야 할 듯 합니다.
$member_srl = $oMemberModel->getMemberSrlByNickName($nick_name);
여기에 getMemberInfoByMemberSrl을 조합하면 다른 회원정보도 다 불러올 수 있어요.
어.. 읽고 대댓글 쓰는동안 댓글이 또 달렸군요 ㅋㅋ
기진곰님께서 말씀하신것도 해보고 올게요!
수정: 완전 잘되네요.. 헐..! 감사합니다!
정정해주셔서 감사합니다~^^
중복이 안된다면 있으면 한단계를 줄일수 있겠네요.
뭐 member_srl만 불러오면 한단계 더 거쳐서 그걸로 다 할 수 있으니 방법이 없는 건 아니니까요~^^
회원수가 많은 커뮤니티라면 두가지를 동시에 사용하면 안되겠어요.
쿼리가 저런식으로 들어있었군요..
한번 해봤는데, 역시 호락호락하지 않습니다 ㅋㅋ
하지만 실마리를 잡았으니 뭔가 나오겠죠?
혹시 방법을 찾게되면 여기 댓글로 올릴게요 :)
// XE에서는 $_GET, $_POST 등에 직접 접근하지 않고 Context를 사용합니다.
$nick_name = Context::get('stn');
// 회원 모델을 불러와서, 닉네임을 member_srl로 변환합니다.
$oMemberModel = getModel('member');
$member_srl = $oMemberModel->getMemberSrlByNickName($nick_name);
그런데 원글에 쓰신 것처럼 현재 로그인한 사용자와 일치하는지 확인하는 과정이 있다면
그냥 현재 로그인한 사용자의 $logged_info->member_srl을 사용하셔도 되고요.
요것도 적용해서 더 깔끔하게 만들어야겠습니다.
답변 감사합니다!