채택완료

쪽지에서

2019-04-11 (목) 13:07:46 2,597

쪽지 알림을 레이어로 이런식으로 띄웠어요,,,,

https://sir.kr/g5_skin/26521?sfl=wr_subject%7C%7Cwr_content&stx=%EC%AA%BD%EC%A7%80

레이어 클릭시 바로 게시판 해당 페이지로 가도록...

memo 테이블에

me_link를 추가해서 저장했습니다.

레이어클릭하면 페이지로 바로 넘어갑니다.

그런데 이게...여기서부터가 남이 잘 안하는거에요,,ㅋ

head.php에

아래 처럼 넣었습니다. 링크 잘 작동합니다.

그런데 이렇게 레이어에서 링크를 바로 타고 넘어가니

쪽지함에서 클릭하는 것과 달리...읽은 쪽지로 업데이트가 안되여...

당연한 거지만요,,,

쪽지함에서 클릭한 거 처럼 쪽지 읽은 시간을 업데이트 해줘야 안읽은 쪽지 갯수가 바뀔거 같은데..

이런거는 어떻게 할 수 있을까요?

<?php
//로그인시 쪽지 왔는지 알려주는 
if ($is_member) {
    //쪽지 테이블에서 마지막 쪽지를 읽어온다.
    $sql = "select * from {$g5['memo_table']} where me_recv_mb_id = '{$member['mb_id']}'  and me_read_datetime = '0000-00-00 00:00:00' order by me_id desc limit 0,1 ";
    $result = sql_fetch($sql);    
    $get_nick = get_member($result['me_send_mb_id'], $fields='mb_nick');
    $get_name = get_member($result['me_send_mb_id'], $fields='mb_name');
$me_subject=$result['me_subject'];
$me_link=$result['me_link'];

    if ($result) {
        //새창을 띄워준다.
        $msg = "<span style='color:black;font-weight:bold'>{$get_name['mb_name']} ({$get_nick['mb_nick']})</span> 님의 쪽지가 도착했습니다. <span style='color:black;font-weight:bold'>{$me_subject}</span>";
        $me_link = $me_link;        
        


?>
<div class="memo_alert">
  <span class="closebtn" onclick="this.parentElement.style.display='none';">X</span> 
  <a href="<?php echo $me_link?>">
<span style="color:white;"><?php echo $msg?></span></a> 
 
</div>
<?php }     } ?>

이 페이지에 

    $sql = " update {$g5['memo_table']}
                set me_read_datetime = '".G5_TIME_YMDHIS."'
                where me_id = '$me_id'
                and me_recv_mb_id = '{$member['mb_id']}'
                and me_read_datetime = '0000-00-00 00:00:00' ";
    sql_query($sql);
이걸 넣으라는데 넣어도 안되네요,,,

|

답변 5개 / 댓글 6개

채택된 답변
+20 포인트
2019-04-11 (목) 13:48:12

위 방법으로도 안되면 약간 야매이긴 하지만

쪽지 보는 부분에서 숨겨진(0px 또는 hidden 처리된) iframe 하나 만드시고

해당 쪽지를 iframe 으로 중복으로 열면 일단 해결되실듯 한데요.

답변에 대한 댓글 3개

2019-04-11 (목) 13:59:59
쪽지 보는 부분에서 숨겨진(0px 또는 hidden 처리된) iframe 하나 만드시고

해당 쪽지를 iframe 으로 중복으로 열면 ....이게 상당히 어려운 말이라 이해가 안됩니다.ㅋ
쪽지 보는페이지라는게 링크로 이동된 페이지에 아이프레임을 넣은다는것인지...등...
2019-04-11 (목) 14:41:44
알려준 방식으로 head에 넣었더니...
로그인전에 회원만 이용할 수 있습니다하고 얼럿이 뜨네요,,,ㅋ
어렵네요
2019-04-11 (목) 14:50:18
관리자이면 불러오라고 해결하였습니다. 감사합니다.

해결했습니다 감사합니다

@머시기거시기

쪽지 보기 본체 파일에서 업데이트 시킬때  조건이 me_id와 맞다면 업데이트 하시오라고 돼 있습니다.

$sql = " update {$g5['memo_table']}
set me_read_datetime = '".G5_TIME_YMDHIS."'
where me_id = '{$result['me_id']}'
and me_recv_mb_id = '{$member['mb_id']}'
and me_read_datetime = '0000-00-00 00:00:00' ";
sql_query($sql);

답변에 대한 댓글 1개

2019-04-11 (목) 14:19:31
원리가 그렇군요,,,
에드프로님 방법이 간단해보여서
<iframe src="/bbs/memo_view.php?me_id=<?=$me_id?>&kind=recv&page=1" style="width: 0; height: 0; border: 0; border: none; visibility: hidden;"></iframe>

헤드에 위와 같이 넣으니 링크이동되면서 쪽지 본거처럼 해결하였습니다.
감사합니다.

이론상 쪽지 본문에 들어 가면 읽은쪽지로 간주합니다.

그러나 그러기 위해서는 조건이 필요합니다.

링크가 잘못된듯 싶네요..

아래 링크를 참고해 보세요..

$me_link=G5_BBS_URL.'/memo_view.php?me_id='.$result['me_id'];
 

답변에 대한 댓글 1개

2019-04-11 (목) 13:58:12
번번이 감사합니다.
원리가 그렇군요,,,me_link는 쪽지 본문으로 가지 않고 링크의 페이지로 바로가기 위해
추가한겁니다. 그래서 링크 페이지로 바로 가서 좋은데...
쪽지 본문으로 들어가지는 않아서 안읽은 쪽지의 갯수에 변동이 없는 상태입니다.

일단 저 쿼리문 $sql 안에 넣으신내용들은   정상적인 쿼리문 형태로 나오고는 있나요!? 중간에 변수들 값안바뀌거나 그런건 없나요?

답변에 대한 댓글 1개

2019-04-11 (목) 13:38:08

if ($is_member) {
//쪽지 테이블에서 마지막 쪽지를 읽어온다.
$sql = "select * from {$g5['memo_table']} where me_recv_mb_id = '{$member['mb_id']}' and me_read_datetime = '0000-00-00 00:00:00' order by me_id desc limit 0,1 ";
$result = sql_fetch($sql);
$get_nick = get_member($result['me_send_mb_id'], $fields='mb_nick');
$get_name = get_member($result['me_send_mb_id'], $fields='mb_name');
$me_subject=$result['me_subject'];
$me_link=$result['me_link'];

if ($result) {
//새창을 띄워준다.
$msg = "<span style='color:black;font-weight:bold'>{$get_name['mb_name']} ({$get_nick['mb_nick']})</span> 님의 쪽지가 도착했습니다. <span style='color:black;font-weight:bold'>{$me_subject}</span>";
$me_link = $me_link;

이부분은 정상으로 표출됩니다.

답변을 작성하려면 로그인이 필요합니다.