diff --git a/admin/index.php b/admin/index.php
index e6999ae..763a588 100644
--- a/admin/index.php
+++ b/admin/index.php
@@ -1636,9 +1636,9 @@ function renderGamerOverview(u, stats) {
const verified = parseInt(u.email_verified);
document.getElementById('gm-info-grid').innerHTML = [
{ label: 'User ID', val: '#' + u.id },
- { label: 'Username', val: u.username },
- { label: 'Alias', val: u.alias },
- { label: 'Email', val: u.email || '—' },
+ { label: 'Username', val: escHtmlA(u.username) },
+ { label: 'Alias', val: escHtmlA(u.alias) },
+ { label: 'Email', val: u.email ? escHtmlA(u.email) : '—' },
{ label: 'Status', val: `${u.status}` },
{ label: 'Email Verified',val: verified ? '✓ Yes' : '⚠ No' },
{ label: 'Token Balance', val: `${parseFloat(u.tokens||0)} 🪙` },
diff --git a/api/purchase.php b/api/purchase.php
index 8ae4b39..f3accf3 100644
--- a/api/purchase.php
+++ b/api/purchase.php
@@ -66,7 +66,7 @@ if ($isManual) {
$playerName, $cardholderName, $billingEmail, $isCustom ? 1 : 0
]);
$pid = db()->lastInsertId();
- logActivity('manual_payment_pending', $userId, null, 'purchase', 0, "Manual payment pending: {$paymentMethod} \${$amountDollars}");
+ logActivity('manual_payment_pending', $userId, null, 'purchase', 0, "Manual payment pending: {$method} \$" . number_format($priceCents / 100, 2));
echo json_encode(['success'=>true,'manual'=>true,'purchase_id'=>$pid,
'message'=>"Request #{$pid} submitted! Tokens credited after payment verification."]);
exit;
@@ -150,7 +150,7 @@ $bal = db()->prepare("SELECT tokens FROM users WHERE id=?");
$bal->execute([$userId]);
$newBal = (float)$bal->fetchColumn();
logActivity('token_purchase', $userId, null, 'purchase', (int)db()->lastInsertId(),
- "Bought {$tokens} tokens via {$paymentMethod} for \${$amountDollars}");
+ "Bought {$tokens} tokens via {$method} for \$" . number_format($priceCents / 100, 2));
echo json_encode([
'success' => true,
'manual' => false,