https://xetown.com/questions/1591602
위 질문에 이은 질문입니다!
getMyVote 함수에서 지속적으로 null 값을 반환해서, 혹시나 해서 세션이 존재하면 DB쿼리를 하지않고 바로 세션을 반환하는 코드를 주석처리했더니 정상 작동합니다.
[댓글의 경우]
function getMyVote()
{
if(!$this->comment_srl) return false;
/* if(isset($_SESSION['voted_comment'][$this->comment_srl]))
{
return $_SESSION['voted_comment'][$this->comment_srl];
} */
[document의 경우]
function getMyVote()
{
if(!$this->isExists())
{
return false;
}
/* if(isset($_SESSION['voted_document'][$this->document_srl]))
{
return $_SESSION['voted_document'][$this->document_srl];
} */
혹시 jquery를 통해 버튼 클릭시에는 세션이 정상적으로 저장이 되지 않는걸까요?
추천 버튼을 클릭하는 부분은 제가 별도의 모듈이나 애드온을 만들어서 세션을 잃어버리게 하지 않았고
단순히 스킨단에서 자바스크립트로 아래와 같이 구현했습니다
if(str.includes("추천문구")) {
$("#recomment-write").prev("li").find("추천 버튼 클래스").click();
} else if(str.includes("비추천문구")){
$("#recomment-write").prev("li").find("비추천 버튼 클래스).click();
}
이와 관련된 댓글을 달까 했는데 질문을 올리셨네요.
db 쿼리 했을때 추천한 내역이 확인이 되지 않을 이유가 없어서 위쪽 세션에서 의도된 값이 저장이 안되거나 혹은 세션유무를 체크하는 부분이 잘못되었을 것으로 생각이 되었습니다. (의도 되지 않은 세션값이 반환되는 상황 : 주석을 하니 아래 코드로 진행하는 것으로 보아..)
디버그를 화면 패널에서 확인하는 것 + 파일에 기록을 이용하셔서
$_SESSION['voted_document'][$this->document_srl]
값이 어떻게 담기는지 확인해 볼 필요도 있겠습니다.
debugPrint($_SESSION['voted_document'][$this->document_srl]);
화면에서 보지 못해도 디버그 파일에는 기록이 되니 스크립트로 추천될 때 어떤 값이 기록되는지 확인해 보고 원인을 찾아갈 수 있지 않을까 하는 생각을 해봤습니다.