PHP WebShell
Текущая директория: /var/www/bitcardoApp/backyard/user/transactions
Просмотр файла: approve.php
<?php
// backyard/user/transactions/approve.php
// ACTION HANDLER: must not output anything before redirect.
// 1) Start session (only, no HTML)
if (session_status() === PHP_SESSION_NONE) {
session_start();
}
// Optional: If you have an admin auth check function, call it here.
// Example:
// require_once '../common/auth.php';
// admin_require_login();
// 2) DB + models only (NO header include)
require_once '../../config/db_config.php';
require_once '../../models/dashboard/index.php';
function redirect_back(int $trans_id): void {
header("Location: view.php?trans_id=" . urlencode((string)$trans_id));
exit;
}
$trans_id = isset($_POST['trans_id']) ? (int)$_POST['trans_id'] : 0;
if ($_SERVER['REQUEST_METHOD'] !== 'POST') {
$_SESSION['flash_error'] = 'Invalid request method.';
redirect_back($trans_id);
}
if ($trans_id <= 0) {
$_SESSION['flash_error'] = 'Invalid transaction.';
redirect_back($trans_id);
}
// CSRF check
$csrf = $_POST['csrf_token'] ?? '';
if (empty($_SESSION['csrf_token']) || !hash_equals($_SESSION['csrf_token'], $csrf)) {
$_SESSION['flash_error'] = 'Security check failed. Please refresh and try again.';
redirect_back($trans_id);
}
// Execute approval
$result = dash_approve_transaction($conn, $trans_id);
if (!empty($result['ok'])) {
$_SESSION['flash_success'] = $result['msg'] ?? 'Transaction approved.';
} else {
$_SESSION['flash_error'] = $result['msg'] ?? 'Approval failed.';
}
redirect_back($trans_id);
Выполнить команду
Для локальной разработки. Не используйте в интернете!