[ PHPXref.com ] [ Generated: Sun Jul 20 20:01:31 2008 ] [ PHPWind 4.3.2 ]
[ Index ]     [ Variables ]     [ Functions ]     [ Classes ]     [ Constants ]     [ Statistics ]

title

Body

[close]

/upload/ -> userpay.php (source)

   1  <?php
   2  require_once ('global.php');
   3  require_once (R_P.'require/tool.php');
   4  include_once(D_P.'data/bbscache/creditdb.php');
   5  !$windid && Showmsg('not_login');
   6  list($db_moneyname,$db_moneyunit,$db_rvrcname,$db_rvrcunit,$db_creditname,$db_creditunit)=explode("\t",$db_credits);
   7  $userdb   = $db->get_one("SELECT md.postnum,md.digests,md.rvrc,md.money,md.credit,md.currency,mb.deposit,mb.ddeposit FROM pw_memberdata md LEFT JOIN pw_memberinfo mb USING(uid) WHERE md.uid='$winduid'");
   8  require_once (R_P.'require/credit.php');
   9  $creditdb = GetCredit($winduid);
  10  if(!$action){
  11      include_once(D_P.'data/bbscache/ol_config.php');
  12      if(!$ol_onlinepay){
  13          Showmsg($ol_whycolse);
  14      }
  15      if((!$ol_payto || !$ol_md5code) && (!$ol_paypal || !$ol_paypalcode)){
  16          Showmsg('olpay_seterror');
  17      }
  18      require_once (R_P.'require/header.php');
  19      $rt = $db->get_one("SELECT hk_value FROM pw_hack WHERE hk_name='adminbankinfo'");
  20      $adminbankinfo = str_replace("\n","<br>",$rt['hk_value']);
  21      require_once PrintEot('userpay');footer();
  22  }elseif($action == 'change'){
  23      require_once (R_P.'require/header.php');
  24      $query = $db->query("SELECT hk_name,hk_value FROM pw_hack WHERE hk_name='currrate1' OR hk_name='currrate2'");
  25      while($rt=$db->fetch_array($query)){
  26          $$rt['hk_name'] = unserialize($rt['hk_value']);
  27      }
  28      $rvrc_1 = $currrate1['rvrc']/10;
  29      $rvrc_2 = $currrate2['rvrc']/10;
  30      if(!$step){
  31          require_once (R_P.'require/header.php');
  32          list($db_moneyname,,$db_rvrcname,,$db_creditname,)=explode("\t",$db_credits);
  33          require_once PrintEot('userpay');footer();
  34      } elseif($type == 'currency1'){
  35          !is_array($changenum) && Showmsg('undefined_action');
  36          foreach($changenum as $key => $value){
  37              if($value && (!is_numeric($value) || $value < 0)){
  38                  Showmsg('numerics_checkfailed');
  39              } else{
  40                  $changenum[$key] = (int)$value;
  41              }
  42          }
  43          $sum = array_sum($changenum);
  44          $sum == 0 && Showmsg('empty_credit');
  45          $sum >  $userdb['currency'] && Showmsg('noenough_currency');
  46          $creditinfo = '';
  47          foreach($changenum as $key => $value){
  48              if($currrate1[$key] && $value){
  49                  $addpoint = $value*$currrate1[$key];
  50                  if(is_numeric($key)){
  51                      $creditinfo .= $creditdb[$key][0].':'.$addpoint.' ';
  52                      $db->pw_update(
  53                          "SELECT uid FROM pw_membercredit WHERE uid='$winduid' AND cid='$key'",
  54                          "UPDATE pw_membercredit SET value=value+'$addpoint' WHERE uid='$winduid' AND cid='$key'",
  55                          "INSERT INTO pw_membercredit SET value='$addpoint',uid='$winduid',cid='$key'"
  56                      );
  57                      $db->update("UPDATE pw_memberdata SET currency=currency-'$value' WHERE uid='$winduid'");
  58                  } elseif(in_array($key,array('rvrc','money','credit'))){
  59                      $db->update("UPDATE pw_memberdata SET currency=currency-'$value',$key=$key+'$addpoint' WHERE uid='$winduid'");
  60                      $key == 'rvrc' && $addpoint /= 10;
  61                      $creditinfo .= ${'db_'.$key.'name'}.':'.$addpoint.' ';
  62                  }
  63              }
  64          }
  65          $logdata=array(
  66              'type'        =>    'change',
  67              'descrip'    =>    'change_descrip_1',
  68              'creditinfo'=>    $creditinfo,
  69              'currency'    =>    $sum,
  70              'uid'        =>    $winduid,
  71              'username'    =>    $windid,
  72              'ip'        =>    $onlineip,
  73              'time'        =>    $timestamp,
  74          );
  75          writetoollog($logdata);
  76          refreshto("userpay.php?action=change",'operate_success');
  77      } elseif($type == 'currency2'){
  78          !is_array($changenum) && Showmsg('undefined_action');
  79          foreach($changenum as $key => $value){
  80              if($value && (!is_numeric($value) || $value < 0)){
  81                  Showmsg('numerics_checkfailed');
  82              } else{
  83                  $changenum[$key] = (int)$value;
  84              }
  85          }
  86          @array_sum($changenum) == 0 && Showmsg('empty_credit');
  87          foreach($changenum as $key => $value){
  88              if($currrate2[$key] && $value){
  89                  $key == 'rvrc' && $value *= 10;
  90                  $value = floor($value/$currrate2[$key])*$currrate2[$key];
  91                  if(is_numeric($key)){
  92                      $value > $creditdb[$key][1] && Showmsg('change_credit_error');
  93                  } elseif(in_array($key,array('rvrc','money','credit'))){
  94                      $value > $userdb[$key] && Showmsg('change_credit_error');
  95                  }
  96              }
  97          }
  98  
  99          $creditinfo = '';
 100          foreach($changenum as $key => $value){
 101              if($currrate2[$key] && $value){
 102                  $key == 'rvrc' && $value *= 10;
 103                  $addpoint  = floor($value/$currrate2[$key]);
 104                  $sum      += $addpoint;
 105                  $value     = $addpoint*$currrate2[$key];
 106                  if(is_numeric($key)){
 107                      $creditinfo .= $creditdb[$key][0].':'.$value.' ';
 108                      $db->update("UPDATE pw_membercredit SET value=value-'$value' WHERE uid='$winduid' AND cid='$key'");
 109                      $db->update("UPDATE pw_memberdata SET currency=currency+'$addpoint' WHERE uid='$winduid'");
 110                  } elseif(in_array($key,array('rvrc','money','credit'))){
 111                      $db->update("UPDATE pw_memberdata SET currency=currency+'$addpoint',$key=$key-'$value' WHERE uid='$winduid'");
 112                      $key == 'rvrc' && $value /= 10;
 113                      $creditinfo .= ${'db_'.$key.'name'}.':'.$value.' ';
 114                  }
 115              }
 116          }
 117  
 118          $logdata=array(
 119              'type'        =>    'change',
 120              'descrip'    =>    'change_descrip_2',
 121              'creditinfo'=>    $creditinfo,
 122              'currency'    =>    $sum,
 123              'uid'        =>    $winduid,
 124              'username'    =>    $windid,
 125              'ip'        =>    $onlineip,
 126              'time'        =>    $timestamp,
 127          );
 128          writetoollog($logdata);
 129          refreshto("userpay.php?action=change",'operate_success');
 130      }
 131  } elseif ($action == 'pay'){
 132  
 133      include_once(D_P.'data/bbscache/ol_config.php');
 134      if(!$ol_onlinepay){
 135          Showmsg($ol_whycolse);
 136      }
 137      $number = (int)$number;
 138      if (!is_numeric($number) || $number < 2){
 139          Showmsg('olpay_numerror');
 140      }
 141      $order_no = str_pad($winduid,10, "0",STR_PAD_LEFT).get_date($timestamp,'YmdHis').num_rand(5);
 142      $order_no = $method==1 ? '0'.$order_no : '1'.$order_no;
 143      $db->update("INSERT INTO pw_clientorder(order_no,uid,subject,body,price,number,date,state,descrip) VALUES('$order_no','$winduid','论坛交易币','购买论坛交易币','1','$number','$timestamp','0','未支付订单')");
 144  
 145      if($method==1){
 146          if(!$ol_paypal || !$ol_paypalcode){
 147              Showmsg('olpay_paypalerror');
 148          }
 149          $url  = "https://www.paypal.com/cgi-bin/webscr?";
 150          $para = array(
 151              'cmd'=>'_xclick',
 152              'invoice'=>$order_no,
 153              'business'=>$ol_paypal,
 154              'item_name'=>'购买论坛交易币',
 155              'item_number'=>'phpw*',
 156              'amount'=>$number,
 157              'no_shipping'=>0,
 158              'no_note'=>1,
 159              'currency_code'=>'CNY',
 160              'bn'=>'phpwind',
 161              'charset'=>$db_charset
 162          );
 163          foreach($para as $key => $value){
 164              $url .= $key."=".urlencode($value)."&";
 165          }
 166      }
 167      ObHeader($url);
 168  } elseif($action == 'list'){
 169      $sqladd = "WHERE uid='$winduid'";
 170      if($state == 1){
 171          $sqladd .= " AND state=0 OR state=1";
 172      } elseif($state == 2){
 173          $sqladd .= " AND state=2";
 174      }
 175  
 176      include_once (R_P.'require/forum.php');
 177      (!is_numeric($page) || $page < 1) && $page = 1;
 178      $limit = "LIMIT ".($page-1)*$db_perpage.",$db_perpage";
 179      $rt    = $db->get_one("SELECT COUNT(*) AS sum FROM pw_clientorder $sqladd");
 180      $pages = numofpage($rt['sum'],$page,ceil($rt['sum']/$db_perpage),"userpay.php?action=list&state=$state&");
 181  
 182      $query = $db->query("SELECT * FROM pw_clientorder $sqladd ORDER BY date DESC $limit");
 183      while($rt=$db->fetch_array($query)){
 184          $rt['date'] = get_date($rt['date']);
 185          $orderdb[] = $rt;
 186      }
 187      require_once (R_P.'require/header.php');
 188      require_once PrintEot('userpay');footer();
 189  } elseif($action == 'log'){
 190      if($keyword){
 191          $sqladd = " AND descrip LIKE '%$keyword%'";
 192          $urladd = 'keyword='.rawurlencode($keyword)."&";
 193      } else{
 194          $sqladd=$urladd='';
 195      }
 196      require_once (R_P.'require/forum.php');
 197      require_once ('require/bbscode.php');
 198      (!is_numeric($page) || $page<1) && $page = 1;
 199      $limit = "LIMIT ".($page-1)*$db_perpage.",$db_perpage";
 200      $rt    = $db->get_one("SELECT COUNT(*) AS sum FROM pw_toollog WHERE uid='$winduid' $sqladd");
 201      $pages = numofpage($rt['sum'],$page,ceil($rt['sum']/$db_perpage),"userpay.php?action=log&$urladd");
 202  
 203      $query = $db->query("SELECT * FROM pw_toollog WHERE uid='$winduid' $sqladd ORDER BY time DESC $limit");
 204      while($rt = $db->fetch_array($query)){
 205          $rt['time']   = get_date($rt['time']);
 206          $rt['descrip']= convert($rt['descrip'],array());
 207          $logdb[]      = $rt;
 208      }
 209      require_once (R_P.'require/header.php');
 210      require_once PrintEot('userpay');footer();
 211  } elseif($action == 'virement'){
 212      $query = $db->query("SELECT db_name,db_value FROM pw_config WHERE db_name LIKE 'cy\_%'");
 213      while($rt = $db->fetch_array($query)){
 214          $$rt['db_name'] = $rt['db_value'];
 215      }
 216      !$cy_virement && Showmsg('virement_closed');
 217  
 218      if(!$_POST['step']){
 219          require_once (R_P.'require/header.php');
 220          require_once PrintEot('userpay');footer();
 221      }elseif($_POST['step']==2){
 222          $rt        = $db->get_one("SELECT uid FROM pw_members WHERE username='$pwuser'");
 223          $touid    = $rt['uid'];
 224          if(!$rt){
 225              $errorname=$pwuser;
 226              Showmsg('user_not_exists');
 227          }
 228          if(!is_numeric($currency) || $currency < 0){
 229              Showmsg('illegal_nums');
 230          }
 231          if(!$pwpwd){
 232              Showmsg('empty_password');
 233          }
 234          if($cy_virelimit && $currency < $cy_virelimit){
 235              Showmsg('currency_limit');
 236          }
 237          $rt = $db->get_one("SELECT m.password,md.currency FROM pw_members m LEFT JOIN pw_memberdata md USING(uid) WHERE m.uid='$winduid'");
 238          if(md5($pwpwd) != $rt['password']){
 239              Showmsg('password_error');
 240          }
 241          $tax = round($currency * $cy_virerate/100);
 242          $needcurrency = $currency + $tax;
 243          if($rt['currency'] < $needcurrency){
 244              Showmsg('noenough_currency');
 245          }
 246          $db->update("UPDATE pw_memberdata SET currency=currency-'$needcurrency' WHERE uid='$winduid'");
 247          $db->update("UPDATE pw_memberdata SET currency=currency+'$currency' WHERE uid='$touid'");
 248          require_once (R_P.'require/tool.php');
 249          $logdata=array(
 250              'type'        =>    'vire',
 251              'nums'        =>    0,
 252              'money'        =>    0,
 253              'descrip'    =>    'vire_descrip',
 254              'uid'        =>    $winduid,
 255              'username'    =>    $windid,
 256              'ip'        =>    $onlineip,
 257              'time'        =>    $timestamp,
 258              'toname'    =>    $pwuser,
 259              'currency'    =>    $currency,
 260              'tax'        =>    $tax
 261          );
 262          writetoollog($logdata);
 263          require_once (R_P.'require/msg.php');
 264          $message=array(
 265              $pwuser,
 266              $winduid,
 267              'vire_title',
 268              $timestamp,
 269              'vire_content',
 270              '',
 271              $windid
 272          );
 273          writenewmsg($message,1);
 274  
 275          Showmsg('virement_success');
 276      }
 277  }
 278  
 279  function num_rand($lenth){
 280      mt_srand((double)microtime() * 1000000);
 281      for($i=0;$i<$lenth;$i++){
 282          $randval.= mt_rand(0,9);
 283      }
 284      return $randval;
 285  }
 286  ?>


[ Powered by PHPXref - Served by Debian GNU/Linux ]