📄 memcp.php
字号:
} else {
$tppnew = in_array($tppnew, array(10, 20, 30)) ? $tppnew : 0;
$pppnew = in_array($pppnew, array(5, 10, 15)) ? $pppnew : 0;
$editormodenew = in_array($editormodenew, array(0, 1, 2)) ? $editormodenew : 2;
$ssnew = in_array($ssnew, array(0, 1)) ? $ssnew : 2;
$sanew = in_array($sanew, array(0, 1)) ? $sanew : 2;
$sinew = in_array($sinew, array(0, 1)) ? $sinew : 2;
$customshownew = base_convert($ssnew.$sanew.$sinew, 3, 10);
$dateformatnew = ($dateformatnew = intval($dateformatnew)) && !empty($userdateformat[$dateformatnew -1]) ? $dateformatnew : 0;
$invisiblenew = $allowinvisible && $invisiblenew ? 1 : 0;
$showemailnew = empty($showemailnew) ? 0 : 1;
$styleid = empty($styleidnew) ? $styleid : $styleidnew;
if($customaddfeednew) {
$customaddfeednew = $addfeed[1] || $addfeed[2] ||$addfeed[3] ? bindec(intval($addfeed[3]).intval($addfeed[2]).intval($addfeed[1])) : '-1';
}
$membersql = "styleid='$styleidnew', showemail='$showemailnew', timeoffset='$timeoffsetnew', tpp='$tppnew', ppp='$pppnew', editormode='$editormodenew', customshow='$customshownew', newsletter='$newsletternew', invisible='$invisiblenew', timeformat='$timeformatnew', dateformat='$dateformatnew', pmsound='$pmsoundnew', customaddfeed='$customaddfeednew'";
}
if($membersql) {
$db->query("UPDATE {$tablepre}members SET $membersql WHERE uid='$discuz_uid'");
}
$query = $db->query("SELECT uid FROM {$tablepre}memberfields WHERE uid='$discuz_uid'");
if(!$db->num_rows($query)) {
$db->query("REPLACE INTO {$tablepre}memberfields (uid) VALUES ('$discuz_uid')");
}
if($memberfieldsql) {
$db->query("UPDATE {$tablepre}memberfields SET $memberfieldsql WHERE uid='$discuz_uid'");
}
if($type == 1 && !empty($authstradd1) && !empty($authstradd2)) {
showmessage('profile_email_verify');
} else {
showmessage('profile_succeed', 'memcp.php?action=profile&typeid='.$typeid);
}
}
} elseif($action == 'credits') {
$taxpercent = sprintf('%1.2f', $creditstax * 100).'%';
if(!$operation) {
if($exchangestatus) {
$operation = 'exchange';
} elseif($transferstatus) {
$operation = 'transfer';
} elseif($ec_ratio) {
$operation = 'addfunds';
}
}
if($operation == 'transfer' && $transferstatus) {
if(!submitcheck('creditssubmit')) {
include template('memcp_credits');
} else {
$amount = intval($amount);
require_once DISCUZ_ROOT.'./uc_client/client.php';
$ucresult = uc_user_login($discuz_user, $password);
list($tmp['uid']) = daddslashes($ucresult);
if($tmp['uid'] <= 0) {
showmessage('credits_password_invalid');
} elseif($amount <= 0) {
showmessage('credits_transaction_amount_invalid');
} elseif(${'extcredits'.$creditstrans} - $amount < ($minbalance = $transfermincredits)) {
showmessage('credits_balance_insufficient');
} elseif(!($netamount = floor($amount * (1 - $creditstax)))) {
showmessage('credits_net_amount_iszero');
}
$member = $db->fetch_first("SELECT uid, username FROM {$tablepre}members WHERE username='$to'");
if(!$member) {
showmessage('credits_transfer_send_nonexistence');
} elseif($member['uid'] == $discuz_uid) {
showmessage('credits_transfer_self');
}
$db->query("UPDATE {$tablepre}members SET extcredits$creditstrans=extcredits$creditstrans-'$amount' WHERE uid='$discuz_uid'");
$db->query("UPDATE {$tablepre}members SET extcredits$creditstrans=extcredits$creditstrans+'$netamount' WHERE uid='$member[uid]'");
$db->query("INSERT INTO {$tablepre}creditslog (uid, fromto, sendcredits, receivecredits, send, receive, dateline, operation)
VALUES ('$discuz_uid', '".addslashes($member['username'])."', '$creditstrans', '$creditstrans', '$amount', '0', '$timestamp', 'TFR'),
('$member[uid]', '$discuz_user', '$creditstrans', '$creditstrans', '0', '$netamount', '$timestamp', 'RCV')");
if(!empty($transfermessage)) {
$transfermessage = stripslashes($transfermessage);
$transfertime = gmdate($GLOBALS['_DCACHE']['settings']['dateformat'].' '.$GLOBALS['_DCACHE']['settings']['timeformat'], $timestamp + $timeoffset * 3600);
sendpm($member['uid'], 'transfer_subject', 'transfer_message');
}
showmessage('credits_transaction_succeed', 'memcp.php?action=creditslog&operation=creditslog');
}
} elseif($operation == 'exchange' && $exchangestatus) {
if(!submitcheck('creditssubmit')) {
$extcredits_exchange = array();
if(!empty($extcredits)) {
foreach($extcredits as $key => $value) {
if($value['allowexchangein'] || $value['allowexchangeout']) {
$extcredits_exchange['extcredits'.$key] = array('title' => $value['title'], 'unit' => $value['unit']);
}
}
}
include template('memcp_credits');
} elseif($extcredits[$fromcredits]['outratio'] || $extcredits[$fromcredits]['ratio'] && $extcredits[$tocredits]['ratio']) {
$outexange = strexists($tocredits, '|');
if(!$outexange && !$extcredits[$tocredits]['ratio']) {
showmessage('credits_exchange_invalid');
}
$amount = intval($amount);
require_once DISCUZ_ROOT.'./uc_client/client.php';
$ucresult = uc_user_login($discuz_user, $password);
list($tmp['uid']) = daddslashes($ucresult);
if($tmp['uid'] <= 0) {
showmessage('credits_password_invalid');
} elseif($fromcredits == $tocredits) {
showmessage('credits_exchange_invalid');
} elseif($amount <= 0) {
showmessage('credits_transaction_amount_invalid');
} elseif(${'extcredits'.$fromcredits} - $amount < ($minbalance = $exchangemincredits)) {
showmessage('credits_balance_insufficient');
} elseif(!$outexange && !($netamount = floor($amount * $extcredits[$fromcredits]['ratio'] * (1 - $creditstax) / $extcredits[$tocredits]['ratio']))) {
showmessage('credits_net_amount_iszero');
}
if(!$extcredits[$fromcredits]['allowexchangeout']) {
showmessage('extcredits_disallowexchangeout');
}
if(!$outexange && !$extcredits[$tocredits]['allowexchangein']) {
showmessage('extcredits_disallowexchangein');
}
if(!$outexange) {
$db->query("UPDATE {$tablepre}members SET extcredits$fromcredits=extcredits$fromcredits-'$amount', extcredits$tocredits=extcredits$tocredits+'$netamount' WHERE uid='$discuz_uid'");
} else {
if(!array_key_exists($fromcredits, $outextcredits[$tocredits]['creditsrc'])) {
showmessage('extcredits_dataerror', NULL, 'HALTED');
}
$netamount = floor($amount * $extcredits[$fromcredits]['outratio'] / $outextcredits[$tocredits]['creditsrc'][$fromcredits]);
list($toappid, $tocredits) = explode('|', $tocredits);
$ucresult = uc_credit_exchange_request($discuz_uid, $fromcredits, $tocredits, $toappid, $netamount);
if(!$ucresult) {
showmessage('extcredits_dataerror', NULL, 'HALTED');
}
$db->query("UPDATE {$tablepre}members SET extcredits$fromcredits=extcredits$fromcredits-'$amount' WHERE uid='$discuz_uid'");
$netamount = $tocredits = 0;
}
$db->query("INSERT INTO {$tablepre}creditslog (uid, fromto, sendcredits, receivecredits, send, receive, dateline, operation)
VALUES ('$discuz_uid', '$discuz_user', '$fromcredits', '$tocredits', '$amount', '$netamount', '$timestamp', 'EXC')");
showmessage('credits_transaction_succeed', 'memcp.php?action=creditslog&operation=creditslog');
} else {
showmessage('undefined_action', NULL, 'HALTED');
}
} elseif($operation == 'addfunds' && $ec_ratio) {
if(!submitcheck('creditssubmit')) {
include template('memcp_credits');
} else {
include language('misc');
$amount = intval($amount);
if(!$amount || ($ec_mincredits && $amount < $ec_mincredits) || ($ec_maxcredits && $amount > $ec_maxcredits)) {
showmessage('credits_addfunds_amount_invalid');
}
if($db->result_first("SELECT COUNT(*) FROM {$tablepre}orders WHERE uid='$discuz_uid' AND submitdate>='$timestamp'-180 LIMIT 1")) {
showmessage('credits_addfunds_ctrl');
}
if($ec_maxcreditspermonth) {
$query = $db->query("SELECT SUM(amount) FROM {$tablepre}orders WHERE uid='$discuz_uid' AND submitdate>='$timestamp'-2592000 AND status IN (2, 3)");
if(($db->result($query, 0)) + $amount > $ec_maxcreditspermonth) {
showmessage('credits_addfunds_toomuch');
}
}
$price = ceil($amount / $ec_ratio * 100) / 100;
$orderid = '';
//$apitype = 'tenpay';
require_once DISCUZ_ROOT.'./include/trade.func.php';
$requesturl = credit_payurl($price, $orderid);
$query = $db->query("SELECT orderid FROM {$tablepre}orders WHERE orderid='$orderid'");
if($db->num_rows($query)) {
showmessage('credits_addfunds_order_invalid');
}
$db->query("INSERT INTO {$tablepre}orders (orderid, status, uid, amount, price, submitdate)
VALUES ('$orderid', '1', '$discuz_uid', '$amount', '$price', '$timestamp')");
showmessage('credits_addfunds_succeed', $requesturl);
}
} else {
showmessage('action_closed', NULL, 'HALTED');
}
} elseif($action == 'creditslog') {
if($operation == 'paymentlog') {
$page = max(1, intval($page));
$start_limit = ($page - 1) * $tpp;
$query = $db->query("SELECT COUNT(*) FROM {$tablepre}paymentlog WHERE uid='$discuz_uid'");
$multipage = multi($db->result($query, 0), $tpp, $page, "memcp.php?action=creditslog&operation=paymentlog");
$totalamount = $db->result($query, 1);
$loglist = array();
$query = $db->query("SELECT p.*, f.fid, f.name, t.subject, t.author, t.dateline AS tdateline FROM {$tablepre}paymentlog p
LEFT JOIN {$tablepre}threads t ON t.tid=p.tid
LEFT JOIN {$tablepre}forums f ON f.fid=t.fid
WHERE p.uid='$discuz_uid' ORDER BY p.dateline DESC
LIMIT $start_limit, $tpp");
while($log = $db->fetch_array($query)) {
$log['authorenc'] = rawurlencode($log['authorenc']);
$log['dateline'] = gmdate("$dateformat $timeformat", $log['dateline'] + $timeoffset * 3600);
$log['tdateline'] = gmdate("$dateformat $timeformat", $log['tdateline'] + $timeoffset * 3600);
$loglist[] = $log;
}
include template('memcp_credits');
} elseif($operation == 'incomelog') {
$page = max(1, intval($page));
$start_limit = ($page - 1) * $tpp;
$query = $db->query("SELECT COUNT(*) FROM {$tablepre}paymentlog WHERE authorid='$discuz_uid'");
$multipage = multi($db->result($query, 0), $tpp, $page, "memcp.php?action=creditslog&operation=incomelog");
$loglist = array();
$query = $db->query("SELECT p.*, m.username, f.fid, f.name, t.subject, t.dateline AS tdateline FROM {$tablepre}paymentlog p
LEFT JOIN {$tablepre}threads t ON t.tid=p.tid
LEFT JOIN {$tablepre}forums f ON f.fid=t.fid
LEFT JOIN {$tablepre}members m ON m.uid=p.uid
WHERE p.authorid='$discuz_uid' ORDER BY p.dateline DESC
LIMIT $start_limit, $tpp");
while($log = $db->fetch_array($query)) {
$log['dateline'] = gmdate("$dateformat $timeformat", $log['dateline'] + $timeoffset * 3600);
$log['tdateline'] = gmdate("$dateformat $timeformat", $log['tdateline'] + $timeoffset * 3600);
$loglist[] = $log;
}
include template('memcp_credits');
} elseif($operation == 'attachpaymentlog') {
$page = max(1, intval($page));
$start_limit = ($page - 1) * $tpp;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -