제로보드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();");
}
?>

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