PHP WebShell
Текущая директория: /var/www/bitcardoApp/backyard/models/rates
Просмотр файла: rates_post.php
<?php
// backyard/models/rates/rates_post.php
declare(strict_types=1);
header('Content-Type: application/json; charset=utf-8');
ob_start(); ini_set('display_errors','0'); error_reporting(E_ALL);
function out($data, int $code=200){
http_response_code($code);
$buf = ob_get_clean();
if ($buf) $data['_diag'] = substr($buf,0,500);
echo json_encode($data);
exit;
}
try{
if($_SERVER['REQUEST_METHOD'] !== 'POST') out(['success'=>false,'message'=>'Method not allowed'],405);
$db = __DIR__ . '/../../config/db_config.php';
if(!file_exists($db)) out(['success'=>false,'message'=>'DB config missing'],500);
include_once $db;
if(!isset($conn) || !($conn instanceof mysqli)) out(['success'=>false,'message'=>'DB conn missing'],500);
require_once __DIR__ . '/rates.php';
$raw = file_get_contents('php://input');
$payload = json_decode($raw,true);
if(!is_array($payload)) $payload = $_POST;
$action = trim((string)($payload['action'] ?? ''));
switch($action){
// ------- coin rates -------
case 'coin.upsert': {
$id = isset($payload['id']) ? (int)$payload['id'] : null;
$coin = (string)($payload['coin'] ?? '');
$buy = isset($payload['buy_rate']) ? (float)$payload['buy_rate'] : null;
$sell = isset($payload['sell_rate']) ? (float)$payload['sell_rate'] : null;
$use = (int)($payload['use_online_rate'] ?? 0);
$auto = (int)($payload['auto_update'] ?? 0);
$st = (int)($payload['status'] ?? 1);
if ($coin==='') out(['success'=>false,'message'=>'Coin is required'],422);
$res = rr_coin_rate_upsert($conn, $id, $coin, $buy, $sell, $use, $auto, $st);
out(['success'=>$res['ok']?true:false,'id'=>$res['id']]);
}
case 'coin.toggle': {
$id = (int)($payload['id'] ?? 0);
if ($id<=0) out(['success'=>false,'message'=>'Invalid id'],422);
$fields = [];
foreach (['use_online_rate','auto_update','status'] as $k) {
if (array_key_exists($k,$payload)) $fields[$k] = (int)$payload[$k];
}
if (!$fields) out(['success'=>false,'message'=>'No toggle field provided'],422);
$ok = rr_coin_rate_toggle($conn, $id, $fields);
out(['success'=>$ok?true:false]);
}
// ------- withdraw fees -------
case 'fee.upsert': {
$id = isset($payload['id']) ? (int)$payload['id'] : null;
$coin = (string)($payload['coin'] ?? '');
$fee = isset($payload['fee_flat']) ? (float)$payload['fee_flat'] : null;
$st = (int)($payload['status'] ?? 1);
if ($coin==='') out(['success'=>false,'message'=>'Coin is required'],422);
$res = rr_withdraw_fee_upsert($conn, $id, $coin, $fee, $st);
out(['success'=>$res['ok']?true:false,'id'=>$res['id']]);
}
case 'fee.toggle': {
$id = (int)($payload['id'] ?? 0);
$st = (int)($payload['status'] ?? 0);
if ($id<=0) out(['success'=>false,'message'=>'Invalid id'],422);
$ok = rr_withdraw_fee_toggle($conn, $id, $st);
out(['success'=>$ok?true:false]);
}
case 'fee.delete': {
$id = (int)($payload['id'] ?? 0);
if ($id<=0) out(['success'=>false,'message'=>'Invalid id'],422);
$ok = rr_withdraw_fee_delete($conn, $id);
out(['success'=>$ok?true:false]);
}
}
out(['success'=>false,'message'=>'Unknown action'],400);
}catch(Throwable $e){
out(['success'=>false,'message'=>'Server error','_err'=>$e->getMessage()],500);
}
Выполнить команду
Для локальной разработки. Не используйте в интернете!