헐랭이님 봐주세요~~~ > 그누4 질문답변

그누4 질문답변

그누보드4 관련 질문은 QA 로 이전됩니다. QA 그누보드4 바로가기
기존 게시물은 열람만 가능합니다.

헐랭이님 봐주세요~~~ 정보

헐랭이님 봐주세요~~~

본문

어제 도움으로 그간의 고통을 잊고 즐거운 마음으로 잠자리에 들었습니다.. 고맙습니다.^^
 
한가지 더 도움을 청하려고 질문 남깁니다.. 수고스럽더라도 함 봐주세요~~~~^______^
 
우선,,구현하려는 것은 포인트가 설정된 글을 읽으려고 할때 확인창을 보여주려고 합니다.
 
우선,,, confirm_msg 함수를 ./lib/common.lib.php 에 추가했구요...(아래처럼)
--------------------------------------------------------------------------------
// 경고메세지를 confirm 경고창으로
function confirm_msg($msg='', $url='')
{
    global $g4;
    if (!$msg) $msg = '올바른 방법으로 이용해 주십시오.';
    //header("Content-Type: text/html; charset=$g4[charset]");
    echo "<meta http-equiv=\"content-type\" content=\"text/html; charset=$g4[charset]\">";
    echo "<script language='javascript'>if(confirm('$msg')) {";
    echo "location.replace('$url'); } else { history.go(-1); }";
    if (!$url)
        echo "history.go(-1);";
    echo "</script>";
    exit;
}
---------------------------------------------------------------------------------
 
다음은,,, ./bbs/board.php 아래부분을 수정했습니다... (어제 헐랭이님이 올려주신 내용에 추가했죠..)
---------------------------------------------------------------------------------------------
이전생략
 
if ($member[mb_point] + $board[bo_read_point] < 0)
     
     confirm_msg("보유하신 포인트(".number_format($member[mb_point]).")가 없거나 모자라서 이용(".number_format($board[bo_read_point]).") 불가합니다.\\n\\n포인트를 충전 후 다시 이용 해 주십시오.", "충전할페이지 url");

else { 
     if ($board[bo_read_point]==0) //포인트가 설정되지 않은 글은 경고창 안띄움
        insert_point($member[mb_id], $board[bo_read_point], "$board[bo_subject] $wr_id 글읽기", $bo_table, $wr_id, '읽기');
     
     else{
     confirm_msg("확인을 누르시면 (".number_format($board[bo_read_point]).")포인트가 차감됩니다.", "문제의 url");
     insert_point($member[mb_id], $board[bo_read_point], "$board[bo_subject] $wr_id 글읽기", $bo_table, $wr_id, '읽기');
     }
이하생략
----------------------------------------------------------------------------------------------------------
 
이렇게 수정했는데... 문제는 해당글을 클릭했을때 경고창이 뜨고 이동해야할 문제의 url 입니다. ㅠ..ㅠ
 
이것저것... 되는데로 넣어봤는데... 저의 한계입니다. 정신이 가물가물... 담배만 피고 있습니다.
 
도와주세요~~~~ 부탁드립니다... ^^ 
 
  • 복사

댓글 전체

그냥 alert를 사용해서 아래와 같이 사용하시면 됩니다.

alert("보유하신 포인트(".number_format($member[mb_point]).")가 없거나 모자라서 이용(".number_format($board[bo_read_point]).") 불가합니다.\\n\\n포인트를 충전 후 다시 이용 해 주십시오.", "$g4[bbs_path]/board.php?bo_table=$bo_table");
$g4[bbs_path]/board.php?bo_table=$bo_table 이부분 대신
해당 url을 넣으시면 됩니다.다른부분도 마찬가지
컴핌창과 알트창에서 경로 지정하는것은 가능 하나 스크립트로 제어하여
해당 게시글을 보기/ 안보기의 제어는 한계가 있는듯 보입니다.

여러가지 방법을 동원해 봤지만 실패하여 허접 하지만 만들어 본겁니다.
아래의 코드를 참고하여 응용 하십시요. 테스트결과 작동은 잘됩니다.ㅋㅋ


// 한번 읽은글은 브라우저를 닫기전까지는 카운트를 증가시키지 않음
$ss_name = "ss_view_{$bo_table}_{$wr_id}";
if (!get_session($ss_name)) {
    sql_query(" update $write_table set wr_hit = wr_hit + 1 where wr_id = '$wr_id' ");
  // 자신의 글이면 통과
  if ($write[mb_id] && $write[mb_id] == $member[mb_id])
            ;
  else {
  // 회원이상 글읽기가 가능하다면
      if ($board[bo_read_level] > 1)
  {

//헐랭이추가부분
$sql = " select count(*) as cnt from $g4[point_table]
                  where mb_id = '$member[mb_id]'
                    and po_rel_table = '$bo_table'
                    and po_rel_id = '$wr_id'
                    and po_rel_action = '읽기' ";
        $row = sql_fetch($sql);
// 포인트 테이블에서 현재글의 포인트 차감 부분이 있나 검사후 없을때만 실행함
  if ($row[cnt]){
  }
  else
 {

if ($member[mb_point] + $board[bo_read_point] < 0) {

    alert("보유하신 포인트(".number_format($member[mb_point]).")가 없거나 모자라서 이용(".number_format($board[bo_read_point]).") 불가합니다.\\n\\n포인트를 충전 후 다시 이용 해 주십시오.");

} else {
    if ($board[bo_read_point]==0) {//포인트가 설정되지 않은 글은 경고창 안띄움
      // insert_point($member[mb_id], $board[bo_read_point], "$board[bo_subject] $wr_id 글읽기", $bo_table, $wr_id, '읽기');

    }else{

if (!$by) {
echo <<<HEREDOC
<script language='javascript'>
function byview(){
 location.href='board.php?bo_table={$bo_table}&wr_id={$wr_id}{$qstr}&by=ok';
  }
 function back(){
  history.back();
  }

</script>
<p>&nbsp;</p><p>&nbsp;</p><p>&nbsp;</p>
<table align="center" border="1" width="600" height="100">
    <tr>
        <td height="30">
            <p>&nbsp;&nbsp;&nbsp;안내: 이글을 열람하면 회원님의 포인트에서 ({$board[bo_read_point]}) 를(을) 차감 합니다.</p>
        </td>
    </tr>
</table>
<table align="center" border="1" width="600" height="100">
    <tr>
        <td height="50">
            <p>&nbsp;<input type=button value="포인트 아깝다ㅠㅠ 안볼래" onclick="javascript:back()"></p>
        </td>
        <td height="50">
            <p>&nbsp;<input type=button value="포인트가 대수냐ㅎㅎ보러갈께" onclick="javascript:byview()"></p>
        </td>
    </tr>
</table>
<p>&nbsp;</p>
HEREDOC;
  exit;
}
else
{

    insert_point($member[mb_id], $board[bo_read_point], "$board[bo_subject] $wr_id 글읽기", $bo_table, $wr_id, '읽기');

}
  }

}

}

  }
  set_session($ss_name, TRUE);

 }
}
$g4[title] = "$group[gr_subject] > $board[bo_subject] > " . strip_tags(conv_subject($write[wr_subject], 255));
}
else
{
    if ($member[mb_level] < $board[bo_list_level])
    {
        if ($member[mb_id])
            alert("목록을 볼 권한이 없습니다.", $g4[path]);
        else
            alert("목록을 볼 권한이 없습니다.\\n\\n회원이시라면 로그인 후 이용해 보십시오.", "./login.php?wr_id=$wr_id{$qstr}&url=".urlencode("board.php?bo_table=$bo_table&wr_id=$wr_id"));
    }
    if (!$page) $page = 1;
    $g4[title] = "$group[gr_subject] > $board[bo_subject] $page 페이지";
}
답변 달아주신 헐랭이님을 포함해서 모든분께 감사드립니다.. ^^

헐랭이님이 주신 코드로 실행했는데....아래와 같은오류가 나옵니다.
--------------------------------------------------------------
Parse error: parse error, unexpected T_SL, expecting ',' or ';' in /home/hosting_users/courtauction/www/bbs/board.php on line 156
--------------------------------------------------------------
해당부분은 아래입니다..

---------------------
echo <<<HEREDOC
----------------------
죄송한데요... 확인부탁드립니다... 이런건 처음보는데... 찾아서 공부해야겠습니다.. ^^
이상하군요.ㅠ.ㅠ
위에있는 코드를 적용하여 테스트한걸 그대로 긁어서 올렸습니다.

http://221.161.154.83/admins/bbs/board.php?bo_table=sub5_1&page=5

테스트 아이디, 비번 : test
에러나는 이유를 모르겠군요. 제가 테스트 하는곳은 잘되는데요.
아래의 코드로 교체 하여 보세요. 그리고 코멘트를 복사시엔 코드가 중복이 되는지 확인해야 합니다.

// 한번 읽은글은 브라우저를 닫기전까지는 카운트를 증가시키지 않음
$ss_name = "ss_view_{$bo_table}_{$wr_id}";
if (!get_session($ss_name)) {
    sql_query(" update $write_table set wr_hit = wr_hit + 1 where wr_id = '$wr_id' ");
  // 자신의 글이면 통과
  if ($write[mb_id] && $write[mb_id] == $member[mb_id])
            ;
  else {
  // 회원이상 글읽기가 가능하다면
      if ($board[bo_read_level] > 1)
  {

//헐랭이추가부분
$sql = " select count(*) as cnt from $g4[point_table]
                  where mb_id = '$member[mb_id]'
                    and po_rel_table = '$bo_table'
                    and po_rel_id = '$wr_id'
                    and po_rel_action = '읽기' ";
        $row = sql_fetch($sql);
// 포인트 테이블에서 현재글의 포인트 차감 부분이 있나 검사후 없을때만 실행함
  if ($row[cnt]){
  }
  else
 {

if ($member[mb_point] + $board[bo_read_point] < 0) {

    alert("보유하신 포인트(".number_format($member[mb_point]).")가 없거나 모자라서 이용(".number_format($board[bo_read_point]).") 불가합니다.\\n\\n포인트를 충전 후 다시 이용 해 주십시오.");

} else {
    if ($board[bo_read_point]==0) {//포인트가 설정되지 않은 글은 경고창 안띄움
      // insert_point($member[mb_id], $board[bo_read_point], "$board[bo_subject] $wr_id 글읽기", $bo_table, $wr_id, '읽기');

    }else{

if (!$by) {
//echo <<<HEREDOC
?>
<script language='javascript'>
function byview(){
 location.href='board.php?bo_table=<?=$bo_table?>&wr_id=<?=$wr_id?><?=$qstr?>&by=ok';
  }
 function back(){
  history.back();
  }

</script>
<p>&nbsp;</p><p>&nbsp;</p><p>&nbsp;</p>
<table align="center" border="1" width="600" height="100">
    <tr>
        <td height="30">
            <p>&nbsp;&nbsp;&nbsp;안내: 이글을 열람하면 회원님의 포인트에서 (<?=$board[bo_read_point]?>) 를(을) 차감 합니다.</p>
        </td>
    </tr>
</table>
<table align="center" border="1" width="600" height="100">
    <tr>
        <td height="50">
            <p>&nbsp;<input type=button value="포인트 아깝다ㅠㅠ 안볼래" onclick="javascript:back()"></p>
        </td>
        <td height="50">
            <p>&nbsp;<input type=button value="포인트가 대수냐ㅎㅎ보러갈께" onclick="javascript:byview()"></p>
        </td>
    </tr>
</table>
<p>&nbsp;</p>
<?
//HEREDOC;
  exit;
}
else
{

    insert_point($member[mb_id], $board[bo_read_point], "$board[bo_subject] $wr_id 글읽기", $bo_table, $wr_id, '읽기');

}
  }

}

}

  }
  set_session($ss_name, TRUE);

 }
}
$g4[title] = "$group[gr_subject] > $board[bo_subject] > " . strip_tags(conv_subject($write[wr_subject], 255));
}
else
{
    if ($member[mb_level] < $board[bo_list_level])
    {
        if ($member[mb_id])
            alert("목록을 볼 권한이 없습니다.", $g4[path]);
        else
            alert("목록을 볼 권한이 없습니다.\\n\\n회원이시라면 로그인 후 이용해 보십시오.", "./login.php?wr_id=$wr_id{$qstr}&url=".urlencode("board.php?bo_table=$bo_table&wr_id=$wr_id"));
    }
    if (!$page) $page = 1;
    $g4[title] = "$group[gr_subject] > $board[bo_subject] $page 페이지";
}
늦은시각까지 신경써주신 헐랭이님 감사드립니다... ^^

새로주신 코드로 해보니... 아주 잘 되는군요.... ㅎㅎㅎ

오늘도 좋은 하루 되세요~~~~ ^^
© SIRSOFT
현재 페이지 제일 처음으로