묻고답하기
추천한 이용자의 IP를 뽑아오기.
2015.09.03 13:20
현재 XE는 세션으로 추천했는지 안했는지 확인을 하는데
IP주소로 체크하기 위하여
function updateVotedCount($document_srl, $point = 1) 부분에
if($args->ipaddress == $_SERVER['REMOTE_ADDR'])
{
return new Object(-1, $failed_voted);
}
이렇게 추가해줬는데
아무래도 voted log에서 ipaddress를 어떻게 불러들여야하는지 모르겠네요.
간단히 voted_log 에 ipaddress가 remote_addr 과 같다면 return 하면 될 것 같은데..
$oDocumentModel = &getModel('document_voted');
$oDocument = $oDocumentModel->getDocument($document_srl);
$voted_check = $oDocument->get('ipaddress');
if($voted_check == $_SERVER['REMOTE_ADDR'])
{
return new Object(-1, $failed_voted);
}
이런식으로도 사용될 수 있나요..?
다만 $oDocument = $oDocumentModel->getDocument($document_srl); 부분에서 현재
추천할 게시물을 srl 을 $document_srl로 가져오는게 맞는지.
댓글 6
-
Gunmania
2015.09.03 13:35
-
꾸링
2015.09.03 13:39
답변 감사합니다.
쿼리를 직접 때리면 document_srl과 ipaddress 부분을 어떻게 랜덤변수화 해야할지..
예제문들을 보면 다 직접 srl을 지정해줘서 사용하는 예제만 있어서 잘모르곘네요 ㅠ
{@
$oDB = &DB::getInstance();
$query = $oDB->_query('select count(*) as total from xe_document_voted where document_srl = 게시판모듈번호 and ipaddress = IP번호);
$result = $oDB->_fetch($query);
}
{$result->total} -
Gunmania
2015.09.03 13:51
배열로 날아오기는 하나 존재 여부를 확인하시려는 것이니 배열인지 여부와는 관계 없이 null 또는 !null 인지 확인만 되시면 문제가 없지 않을까요?
-
꾸링
2015.09.03 13:54
추천한 이용자의 IP와 게시물에 voted 에 기록된 IP인지를 체크해야 문제가 없을 것 같은데..
값만 있는지를 체크하게되면, 해당 펑션에서 사용할 때 다른 이용자들의 추천 기록이 있어서 IP가 등록되어있다면
다른 IP여도 추천이 안될듯 합니다.
ps. 제가 제목을 이상하게 붙여서 햇갈리셨나봅니다 ㅠㅠ
원래 목적은 현재 세션당 추천을 제한하는데
동일 IP일 경우 같은 게시물에 추천을 금지하기 위해서입니다.
-
꾸링
2015.09.03 13:57
중복 로그인 방지 애드온이 이미 만들어져서, 해당 애드온을 보고 참고하겠습니다. ^^;
-
Gunmania
2015.09.03 14:05
쿼리문에서 조건에 qual document_srl(추천받을 글) and qual ipadress(=remote_addr)로 하시면 그 글에서 해당 IP로 추천한 결과만 받아오게 됩니다. 말씀하신게 이 부분 아니신가요...?
document_voted_log 테이블에 document_srl, ipadress 값을 기준으로 쿼리 때려서 넘어오는 값이 있는지 여부로 처리하시면 될 것 같습니다.