링크를 클릭시 포인트 1회만 차감 > 그누4 팁자료실

그누4 팁자료실

그누보드4와 관련된 팁을 여러분들과 함께 공유하세요.
나누면 즐거움이 커집니다.

링크를 클릭시 포인트 1회만 차감 정보

링크를 클릭시 포인트 1회만 차감

본문

허접하지만 글 올립니다.
자세히는 테스트가 안되어져 있어요 사용자님들의 몫이겠죠...


link.php 파일을 비교하면서 고치시세요.
아래의 내용을 전체 복사해서 덮어 씌워도 됩니다.
<?
include_once("./_common.php");

//아래의 100내용은 차감될 포인트
$link_point = 100;

$html_title = "$group[gr_subject] > $board[bo_subject] > " . conv_subject($write[wr_subject], 255) . " > 링크";

if (!($bo_table && $wr_id && $no))
    alert_close("값이 제대로 넘어오지 않았습니다.");

// SQL Injection 예방
$row = sql_fetch(" select count(*) as cnt from {$g4[write_prefix]}{$bo_table} ", FALSE);
if (!$row[cnt])
    alert_close("존재하는 게시판이 아닙니다.");

if (!$write["wr_link{$no}"])
    alert_close("링크가 없습니다.");

$ss_name = "ss_link_{$bo_table}_{$wr_id}_{$no}";
//1회 차감을 위한 검색 조건 --- 뭐 임으로 해도 됨 그런데 다른 부분도 맞춰줘야 한다는..
$ss_name2 = "{$member[mb_id]}_sslink_{$bo_table}_{$wr_id}";


if ($board[bo_link_level] <= $member[mb_level]) // 회원이상 링크가 가능하다면
{
 // 링크 포인트가 음수이고 회원의 포인트가 0 이거나 작다면
 if ($member[mb_point] + $link_point < 0)
  alert("보유하신 포인트(".number_format($member[mb_point]).")가 없거나 모자라서 링크(".number_format($link_point).")가 불가합니다.\\n\\n포인트를 적립하신 후 다시 링크해 주십시오.");

 $sql2 = " SELECT * from {$g4['point_table']} where po_content = '$ss_name2' Order By po_id ";
 $row2 = sql_fetch($sql2);

 if (!$row2[po_content]) {
  // 게시물당 한번만 차감하도록 수정
  insert_point($member[mb_id], $link_point*(-1), "$ss_name2", $bo_table, $wr_id, "링크");
 }
}


if (empty($_SESSION[$ss_name]))
{
    $sql = " update {$g4[write_prefix]}{$bo_table} set wr_link{$no}_hit = wr_link{$no}_hit + 1 where wr_id = '$wr_id' ";
    sql_query($sql);

    set_session($ss_name, true);
}

goto_url(set_http($write["wr_link{$no}"]));
?>
############################################

그리고 게시판 스킨에서 링크를 클릭하면 차감하고 싶은 게시판의
view.skin.php에서 아래의 내용을 추가하셔요.

############################################
// 링크---------->이 부분을 찾아서 아래의 내용을 수정해야 합니다.
// 아래의 내용을 수정하는 이유는 링크만 클릭을 해도 차감되게 되는데 뭐 대략 링크
// 사용자가 마지막 선택의 시간이라고 할 수 있게 하기 위해서...죠
$cnt = 0;
for ($i=1; $i<=$g4[link_count]; $i++)
{
    if ($view[link][$i])
    {
        $cnt++;
        $link = cut_str($view[link][$i], 70);
        echo "<tr><td height=25 style=padding-left:15px;>링크 : <a href=\"javascript:link_up('{$view[link_href][$i]}', '{$i}');\">{$link}</a> ({$view[link_hit][$i]}) </td></tr><tr><td height=1 bgcolor=#E7E7E7></td></tr>";
    }
}
?>

자바스크립트는 하단쯤 에 넣으시면 됩니다.

<script language="JavaScript">
function link_up(link) {

<?
$link_point = 100;
$ss_name2 = "{$member[mb_id]}_sslink_{$bo_table}_{$wr_id}";

if ($board[bo_link_level] <= $member[mb_level]) {

 $sql8 = " SELECT * from {$g4['point_table']} where po_content = '$ss_name2' Order By po_id ";
 $row8 = sql_fetch($sql8);

 if (!$row8[po_content]) {
?>
  if (confirm(" 링크 하시면 포인트가 <?=number_format($link_point)?> 점 차감됩니다.\n\n포인트는 게시물당 한번만 차감되며 다음에 다시 링크하셔도 중복하여 차감하지 않습니다.\n\n그래도 링크 하시겠습니까?"))
<?
 }
}
?>
document.location.href = link;
}
</script>
<!-- 게시글 보기 끝 -->


추천
1

댓글 3개

포인트가 0 이거나 음수인 상태에서도 링크가 눌러집니다.
-100포인트일때 링크 누르면 -200 포인트 되고.. 계속 그런 식이네요...
$cnt = 0;
for ($i=1; $i<=$g4[link_count]; $i++)
{
    if ($view[link][$i])
    {
        $cnt++;
        $link = cut_str($view[link][$i], 70);
        echo "<tr><td height=25 style=padding-left:15px;>링크 : <a href=\"javascript:link_up('{$view[link_href][$i]}', '{$i}');\">{$link}</a> ({$view[link_hit][$i]}) </td></tr><tr><td height=1 bgcolor=#E7E7E7></td></tr>";
    }
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
위의 내용 중에서 target=_blank를 삽입하면 될 듯 싶은데요....
전체 3,313 |RSS
그누4 팁자료실 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT