제로보드4는 공식적으로 더 이상 개발되지도 배포되지도 않습니다.
제로보드4를 사용하기 위한 팁보다 제로보드4를 안전하고 무사히 다른 툴로 이전하는 팁들을 게재해주시면 감사하겠습니다.
시간이 오래 지난 만큼 오래된 프로그램은 보안 및 사용성에 있어 문제가 많으니 이해 바랍니다.

*통합 포인트 사용중인 분만 이용해 주세요

 

"수신자부담" 으로 포인트를 선물시 수신자 포인트에서 제대로 수수료가 깍이지 않았던 오류를 수정했습니다.

 

 

<?php
 /************************************
  포인트 선물 v2.0
  제작: 에지 (www.korct.com)

  저작권 표시를 수정하지 않는 조건으로
  자유롭게 수정/배포가 가능합니다. :)
 *************************************/


 // 수수료 (단위: %)
 $susu = 5;
 // 수수료 무료 레벨. 사용하지 않으려면 0. (3이라고 쓰는 경우 레벨 1,2,3은 수수료 0%)
 $no_tax_level = 1;
 // 운영자 아이디 (수수료 취득용)
 $admin_id = "관리자 아이디";

 // 제로보드의 절대 경로
 $_zb_path = "절대 경로 입력하세요";


 include $_zb_path."lib.php";
 $connect = dbconn();
 $member = member_info();

 // 권한 체크
 if(!$member[no]) Error("로그인하십시오.","window.close();");
 if($member[point]<=0) Error("포인트가 0포인트 이하이신 분은<br>포인트를 송금하실수 없습니다.","window.close();");

 // 쪽지 보내는 함수
 function send_memo($sender,$receiver,$subject,$message,$readed="1") {
  global $get_memo_table, $send_memo_table, $member_table;
  $reg_date = time();
  $message = str_replace("\n","<br />",$message);

  $result .= mysql_query("insert into $get_memo_table (member_no,member_from,subject,memo,readed,reg_date) values ('$receiver','$sender','$subject','$message',$readed,'$reg_date')");
  $result .= mysql_query("insert into $send_memo_table (member_no,member_to,subject,memo,readed,reg_date) values ('$sender','$receiver','$subject','$message',$readed,'$reg_date')");
  $result .= mysql_query("update $member_table set new_memo=1 where no='$receiver'");
  return $result;
 }
?>

<style type="text/css">
<!--
body,td,p,input,textarea {
 font-family:굴림;
 font-size:9pt;
 color:black;
}

input,textarea {background-color:transparent; border:0;}
.input {width:100%;}

.dot_line {
 background-color:#CCCCCC;
 height:1px;
 border:0px;
 padding:0px;
}
.bg_dd {background-color:#DDDDDD;}
.bg_ee {background-color:#EEEEEE;}
-->
</style>

<?php
 if(!$bmode) {
  if($member_no) {
   $mdata = mysql_fetch_array(mysql_query("select * from $member_table where no='$member_no'"));
   $receiver = $mdata[user_id];
  }
?>
<script type="text/javascript" language="JavaScript">
<!--
function Tax() {
<? if($member[level]<=$no_tax_level) { ?>
 document.all('tax').value = 0;
<? } else { ?>
 var susu = '<?=$susu?>';
 var total = Math.floor(document.pointgift.howmuch.value*(susu/100));

 document.all('tax').value = total;
<? } ?>
}

function Check_Submit() {
 if(!document.pointgift.receiver.value) {
  alert("송금 받으실 분의 ID를 입력해주세요.");
  document.pointgift.receiver.focus();
  return false;

 }

 if(document.pointgift.qestsend.checked && !document.pointgift.message.value) {
  alert("내용을 입력해주세요.");
  document.pointgift.message.focus();
  return false;
 }

 if(document.pointgift.howmuch.value > <?=$member[point]?>) {
  alert("잔액이 부족합니다.");
  document.pointgift.howmuch.value='<?=$member[point]?>';
  document.pointgift.howmuch.focus();
  return false;
 }

 if(document.pointgift.qvote.checked) document.pointgift.plus_vote.value = Math.round(document.pointgift.howmuch.value/100);
}

function Show() {
 if(document.pointgift.qestsend.checked) {
  document.all.tr_memo.style.display =document.all.tr_memo_line.style.display = "block";
 } else {
  document.all.tr_memo.style.display = document.all.tr_memo_line.style.display = "none";
 }

 Tax();
}
-->
</script>

<body OnLoad="Show();">
<table cellpadding="2" cellspacing="1" width="100%">
<form name="pointgift" method="post" OnSubmit="return Check_Submit();"; action="<?=$PHP_SELF?>">
<input type="hidden" name="bmode" value="1">
<input type="hidden" name="mode" value="<?=$mode?>">
 <tr height="1">
  <td colspan="2" class="dot_line"></td>
 </tr>
 <tr height="20">
  <td class="bg_dd" align="center" colspan="2">
   <p><b>포인트 송금</b></p>
  </td>
 </tr>
 <tr height="1">
  <td colspan="2" class="dot_line"></td>
 </tr>
 <tr height="20">
  <td width="100" class="bg_ee" style="padding-right:3pt;" align="right">
   <p><b>받는사람 ID:</b></p>
  </td>
  <td>
   <p><input type="text" name="receiver" value="<?=$receiver?>" class="checkbox" style="width:100%;" /></p>
  </td>
 </tr>
 <tr height="1">
  <td colspan="2" class="dot_line"></td>
 </tr>
 <tr height="20">
  <td width="100" class="bg_ee" style="padding-right:3pt;" align="right">
   <p><b>보유 포인트:</b></p>
  </td>
  <td>
   <p><?=number_format($member[point])?>pt</p>
  </td>
 </tr>
 <tr height="1">
  <td colspan="2" class="dot_line"></td>
 </tr>
 <tr height="20">
  <td width="100" class="bg_ee" style="padding-right:3pt;" align="right">
   <p><b>송금할 포인트:</b></p>
  </td>
  <td>
   <p><input type="text" name="howmuch" size="5" maxlength="6" value="<? if($sendp) echo $sendp; else echo "0"; ?>" onBlur="Tax();" class="checkbox" />pt (숫자만 쓰세요)</p>
  </td>
 </tr>
 <tr height="1">
  <td colspan="2" class="dot_line"></td>
 </tr>
 <tr height="20">
  <td width="100" class="bg_ee" style="padding-right:3pt;" align="right">
   <p><b>수수료:</b></p>
  </td>
  <td>
   <p><input type="text" name="tax" size="<?=(strlen($member[point])-1)?>" size="5" style="color:red; border:0;" value="0" class="checkbox" readonly />pt
   <input type="radio" name="whotax" value="1" class="checkbox" checked>본인부담 <input type="radio" name="whotax" value="2" class="checkbox" />수신자부담</p>
  </td>
 </tr>
 <tr height="1">
  <td colspan="2" class="dot_line"></td>
 </tr>
 <tr height="20">
  <td width="100" class="bg_ee" style="padding-right:3pt;" align="right">
   <p><b>설정:</b></p>
  </td>
  <td>
   <p><input type="checkbox" name="qestsend" value="1" class="checkbox" checked OnClick="Show();" />쪽지 보내기</p>
  </td>
 </tr>
 <tr height="1">
  <td colspan="2" class="dot_line"></td>
 </tr>
 <tr height="20" id="tr_memo" style="display:block;">
  <td width="100" class="bg_ee" style="padding-right:3pt;" align="right">
   <p><b>쪽지보내기:</b></p>
  </td>
  <td>
   <p><textarea name="message" rows="5" style="width:100%;" class="checkbox"></textarea></p>
  </td>
 </tr>
 <tr height="1" id="tr_memo_line" style="display:block;">
  <td colspan="2" class="dot_line"></td>
 </tr>
 <tr height="20">
  <td colspan="2" class="bg_ee">
   <p align="center"><input type="submit" value="     확인     " class="checkbox" style="width:100%;" accesskey="s" /></p>
  </td>
 </tr>
 <tr height="1">
  <td colspan="2" class="dot_line"></td>
 </tr>
</form>
</table>
<?
 // 사용자 환경 및 정보 체크
 } elseif($_POST[bmode]==1 && $_POST[receiver]) {
  // 발신자가 발신할 포인트의 양 계산
  $howmuch = $_POST[howmuch];
  $tax = $_POST[tax];
  if($whotax==1) $pointgift = ($howmuch+$tax); //본인 부담
  elseif($whotax==2) $pointgift = ($howmuch);  //수신자 부담

  // 사용자 환경 체크
  if($qestsend && !$message) Error("내용을 입력하셔야 합니다.","history.go(-1);");
  if(!ereg("([(0-9)+])",$howmuch)) Error("숫자만 입력해주세요.","history.go(-1);");
  if(!isnum($howmuch))  Error("숫자만 입력해주세요.","history.go(-1);");
  if(!$pointgift)  Error("송금하실 포인트를 입력해주세요.","history.go(-1);");

  if($pointgift > $member[point]) Error("회원님은 ".number_format($howmuch)."pt까지 송금하실 수 있습니다.","history.go(-1);");
  if($pointgift<0) Error("포인트가 부족합니다.","history.go(-1);");

  if($member[user_id]==$receiver) Error("자신의 아이디를 입력하실 수 없습니다.");

  $data = mysql_fetch_array(mysql_query("select * from $member_table where user_id='$receiver'"));
  if(!$data[no]) Error("존재하지 않는 ID입니다.<br />받는사람 ID를 확인해주세요.");

  // 받는 사람 확인
  $temp_name = get_private_icon($data[no],2);
  if($temp_name) $tname = "<img src="./\".$temp_name."\" border=\"0\" align=\"absmiddle\">";
  else $tname = stripslashes($data[name]);
?>
<table cellpadding="0" cellspacing="0" width="100%" height="300">
 <tr>
  <td>
<table cellpadding="2" cellspacing="1" width="100%">
<form name="pointgift" method="post" action="<?=$PHP_SELF?>">
<input type="hidden" name="bmode" value="2" />
<input type="hidden" name="mode" value="<?=$mode?>" />
<input type="hidden" name="receiver" value="<?=$_POST[receiver]?>" />
<input type="hidden" name="pointgift" value="<?=$pointgift?>" />
<input type="hidden" name="howmuch" value="<?=$_POST[howmuch]?>" />
<input type="hidden" name="tax" value="<?=$_POST[tax]?>" />
<input type="hidden" name="whotax" value="<?=$whotax?>" />
<input type="hidden" name="qestsend" value="<?=$qestsend?>" />
<input type="hidden" name="message" value="<?=$message?>" />
 <tr>
  <td align="center" colspan="2">
   <p><?=number_format($howmuch)?>pt를 받으실 분이 <?=$tname?>님이 맞습니까?<p>
  </td>
 </tr>
 <tr height="20">
  <td width="50%" class="bg_ee" align="center"><input type="submit" value="예" class="input" /></td>
  <td width="50%" class="bg_ee" align="center"><input type="button" value="아니오" class="input" OnClick="history.back();" /></td>
 </tr>
</form>
</table>
  </td>
 </tr>
</table>
<?
 // 결과 처리
 } elseif($_POST[bmode]==2 && $_POST[receiver]) {
  if($pointgift) {
   // 수신자가 수신할 포인트의 양 계산
   if($whotax==1) $pointgift_re = $howmuch; //본인 부담
   elseif($whotax==2) $pointgift_re = $howmuch-$tax; //수신자 부담
   $reg_date = time();

   // 포인트 증감
   mysql_query("update $member_table set point=point-$pointgift where user_id='$member[user_id]'");
   mysql_query("update $member_table set point=point+$pointgift-$tax where user_id='$receiver'");

   // 받는 사람 확인
   $data = mysql_fetch_array(mysql_query("select * from $member_table where user_id='$receiver'"));
   $temp_name = get_private_icon($data[no],2);
   if($temp_name) $tname = "<img src="./\".$temp_name."\" border=\"0\" align=\"absmiddle\">";
   else $tname = stripslashes($data[name]);

   // 포인트송금 관련 쪽지 보냄
   if($qestsend) {
    $message = stripslashes($member[name])."님께서 ".number_format($howmuch)."pt를 송금하셨습니다."
    ."\\n\\n".$message;
    $message = str_replace("\n","<br />",$message);
    send_memo($member[no],$data[no],"포인트를 선물받았습니다.",$message);
   }

   // 수수료를 운영자에게 전송
   if($tax>0) mysql_query("update $member_table set point=point+$tax where user_id='$admin_id'");
?>
<table cellpadding="0" cellspacing="0" width="100%" height="300"><tr><td>
<table cellpadding="2" cellspacing="1" width="100%">
 <tr>
  <td align="center">
   <p><?=number_format($howmuch)?>pt를 <?=$tname?>님께 송금하였습니다.<br />수수료로 <?=number_format($tax)?>pt 소비하였습니다.</p>
  </td>
 </tr>
 <tr height="20">
  <td align="center" class="bg_ee">
   <p><input type="button" value="되돌아가기" class="input" OnClick="location.href="./<?=$PHP_SELF?>?mode=<?=$mode?>&bmode=0&receiver=<?=$receiver?>";" /></p>
  </td>
 </tr>
</table>
</td></tr></table>
<?
  } else Error("잘못된 접근입니다!","window.close();");
 }
?>


[레벨:16]텔크

2009.06.24 13:15:08
*.196.220.232

에지입니다.

아직도 요게 올라오고 있다니 쫌 당황스럽기도 하고 기쁘기도 하고 ㅎㅎ

써머스

2009.08.09 05:53:22
*.233.27.105

ㄷㄷㄷ...올라오고를 롤코타로 봤.....(글자수도 다른데..;)

[레벨:1]변성환543

2009.06.25 12:14:27
*.38.17.244

에지님께 쓰기 편하고 보기도 좋더라고요 ^^ 굿

글쓴이

2009.07.13 20:06:22
*.33.167.68

얼마 이상의 포인트는 보내지 못하게 할 수는 없나요?

List of Articles
번호 제목 글쓴이 날짜 조회 수
4529 bbs/skin/view.php 파일 해킹경고 [5] [레벨:6]아가페 2009-08-16 8362
4528 레벨 표시를 숫자대신 원하는 명칭으로 표시하기 (관리자페이지만) [레벨:2]brainstorm 2009-08-08 5666
4527 게시판에 html 태그로 글 올리실때 style 태그허용시키기 [레벨:1]tagwiz 2009-08-04 5890
4526 코멘트 목록 <-> 코멘트 쓰기 순서 바꾸기 하늘영혼 2009-07-26 6199
4525 DB환경이 utf-8 인곳에서 lib.php 수정해서 euc-kr로 사용 하기 [레벨:6]빛의바다 2009-07-24 7582
4524 포인트를 소진하여 제목굵게 기능만들기 file [8] [레벨:2]이상길 2009-07-22 6688
4523 스팸성 간단 답글 일괄 삭제하는 방법 ( IP 기준 ) [3] [레벨:2]짙은어둠 2009-07-08 8173
4522 Star rating 적용 file [4] [레벨:13]완이 2009-07-04 7338
4521 네이버 스마트에디터 내용 줄간격 늘어나는 문제 [5] [레벨:3]또리♡485 2009-06-26 8964
4520 쪽지함에 포인트순위 추가하기 - 수정판 [레벨:1]변성환543 2009-06-23 6911
» 에지님의 포인트 선물 (포인트 수수료 완벽수정판) [4] [레벨:1]변성환543 2009-06-21 7046
4518 아이프레임 자동 리사이징 JS ( 원프레임사이트용 ) [1] [레벨:3]ReloadMax 2009-06-18 1280
4517 새로운 코멘트 달렸을때 관리자에게 메일로 통보하기 [4] [레벨:2]brainstorm 2009-06-12 7384
4516 phpMyAdmin 등으로 코멘트 삭제 후 코멘트 수 조정하기 file [레벨:2]큰돌♡ 2009-05-26 7773
4515 <물결 플래시> 제로보드에 적용하기 file [12] [레벨:14]러브렛 2009-04-24 1750
4514 PHP 버전업후 register_globals 때문에 고생하시는 분들... [1] [레벨:2]권성현167 2009-04-18 9528
4513 홈에이지 접속자 온클럽 수정본 더이상 깔끔할순없다 [레벨:3]풍sky 2009-04-14 8628
4512 관리자페이지 [ 마지막 로그인 날짜 ] 표시와 검색,관리! file [11] [레벨:2]바카양 2009-04-13 10825
4511 게시판 정리위해 관리자모드 클릭시 406 에러 날 경우 file [레벨:2]ZIBURO™ 2009-04-03 7395
4510 스팸봇이 들어오는 것 차단하는 방법의 한가지..^_^ [2] [레벨:2]짙은어둠 2009-03-14 1563