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

매출이 오르면 내리는 수수료! 지금 수수료센터에서 전자결제(PG)수수료 비교견적 신청해 보세요!

그누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