쪽지 읽기에서 클릭된 경우 예외처리는 어떻게 하나요?
CMS/프레임워크 | XE 1.x |
---|---|
개발 언어 | PHP 7.2 |
특정 조건에 글읽기 등 페이지 접근을 제한해 놓은 애드온이 있습니다.
그런데 쪽지에서 링크를 클릭하고 접근을 하는 경우는 애드온에서 제한하는 코드 위쪽에서 리턴을 시도해 보려고 합니다.
저희 사이트 쪽지 읽는 화면의 url은 /index.php?act=dispCommunicationMessages&mid=main&message_srl=2291744
이렇게 처리 되고 있습니다.
이 주소의 컨텐츠(쪽지) 에 특정 글로 이동하는 링크가 있습니다.
그런데 이 링크를 클릭하고 이동하게 될 경우 해당 글을 애드온에서 제한하지 않으려 합니다.
댓글 5
// 리퍼러 URL에서 act, message_srl 등의 파라미터들을 추출
// $args는 미리 선언할 필요 없어요. 반환값도 없어요. 이상한 형태로 호출되는 함수입니다;;;
parse_str(parse_url($_SERVER['HTTP_REFERER'], PHP_URL_QUERY), $args);
// 쪽지읽기 화면에서 왔는지 확인
if($args['act'] == 'dispCommunicationMessages' && !empty($args['message_srl']))
{
// 예외처리(리턴 등)
}
답변 감사합니다. 완전 바로 사용할 수 있게 작성해주셔서 너무 감사합니다.
변수 이름은 다른 것과 겹치지만 않으면 아무거나 써도 상관없습니다.
$args = 함수(값1, 값2); 이렇게 함수의 반환값을 변수에 담는 것이 가장 자연스러울 텐데, parse_str 함수는 20여년 전 잘못 설계된 탓에;;; 결과를 받는 변수가 엉뚱하게도 맨 뒤에 붙습니다. 저렇게 쓰지 않으면 추출한 값들을 전역변수로 뿌려버리더군요. 오래된 함수들 중 이런 변태적인 것들이 왕왕 있어서 PHP가 욕을 먹지요 ㅎㅎ
바로 아래쪽에 해당 변수를 사용하긴 합니다만..
$args = new stdClass();
로 초기화 해 주고 있으니 별 문제는 안되겠네요~~
쪽지를 읽지 않으면 컨텐츠들 열람을 제한하는 애드온을 사용중인데요.
특정 글의 댓글이 추천을 받았다고 쪽지로 보내주는데 여러개의 추천을 받으면 쪽지가 여러개가 도착해 있어 해당 쪽지에서 제시하는 추천된 댓글로 이동시 다른 쪽지를 열람하지 않은 상황이라 어떤 댓글이 추천받았는지 확인에 불편이 생겨서 질문하게 되었습니다.
제대로 반영이 되어 쪽지로 받은 안내 링크로 이동은 제한되지 않을 수 있게 처리 되었습니다.