File manager - Edit - /home/webapp69.cm.in.th/u69319090037/Shop/db_test.php
Back
<?php /** * Temporary Database Connection Diagnostic Tool * Security Note: Does NOT reveal passwords. Delete after testing. */ require_once __DIR__ . '/config/db.php'; // Detect Environment $server_name = $_SERVER['SERVER_NAME'] ?? $_SERVER['HTTP_HOST'] ?? 'localhost'; $is_local = in_array($server_name, ['localhost', '127.0.0.1', '::1']) || strpos($server_name, '192.168.') === 0; $environment = $is_local ? 'Localhost' : 'Production'; // Read config values via reflection $ref = new ReflectionClass('Database'); $props = $ref->getDefaultProperties(); if ($is_local) { $host = $props['local_host']; $db_name = $props['local_name']; $username = $props['local_user']; $password = $props['local_pass']; } else { $host = $props['prod_host']; $db_name = $props['prod_name']; $username = $props['prod_user']; $password = $props['prod_pass']; } $conn_status = "FAILED"; $pdo_code = "-"; $pdo_message = "-"; $tables_count = 0; $server_version = "-"; try { $test_conn = new PDO( "mysql:host={$host};dbname={$db_name};charset=utf8mb4", $username, $password, [ PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION, PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC, PDO::ATTR_TIMEOUT => 5 ] ); $conn_status = "SUCCESS"; $server_version = $test_conn->getAttribute(PDO::ATTR_SERVER_VERSION); // Check tables in database $tables = $test_conn->query("SHOW TABLES")->fetchAll(PDO::FETCH_COLUMN); $tables_count = count($tables); } catch (PDOException $e) { $conn_status = "FAILED"; $pdo_code = $e->getCode(); // Ensure password is never exposed in the error message $msg = $e->getMessage(); if (!empty($password)) { $msg = str_replace($password, '********', $msg); } $pdo_message = $msg; } ?> <!DOCTYPE html> <html lang="th"> <head> <meta charset="UTF-8"> <title>Database Test Diagnostic</title> <style> body { font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif; background: #0f172a; color: #f8fafc; padding: 30px 15px; margin: 0; } .container { max-width: 650px; margin: 0 auto; background: #1e293b; border-radius: 12px; padding: 25px; box-shadow: 0 10px 25px rgba(0,0,0,0.3); border: 1px solid #334155; } h2 { margin-top: 0; border-bottom: 2px solid #334155; padding-bottom: 12px; color: #38bdf8; } .item { display: flex; justify-content: space-between; padding: 10px 0; border-bottom: 1px solid #334155; } .label { color: #94a3b8; font-weight: 500; } .value { font-family: Consolas, monospace; font-weight: 600; } .badge { padding: 4px 10px; border-radius: 6px; font-weight: bold; display: inline-block; } .success { background: #065f46; color: #34d399; } .failed { background: #7f1d1d; color: #f87171; } .error-box { margin-top: 15px; background: #450a0a; border: 1px solid #991b1b; border-radius: 8px; padding: 15px; color: #fca5a5; font-family: Consolas, monospace; font-size: 0.9rem; word-break: break-all; } .note { margin-top: 20px; font-size: 0.85rem; color: #fbbf24; text-align: center; } </style> </head> <body> <div class="container"> <h2>Database Connection Test</h2> <div class="item"> <span class="label">Environment:</span> <span class="value"><?php echo htmlspecialchars($environment); ?></span> </div> <div class="item"> <span class="label">PHP Version:</span> <span class="value"><?php echo htmlspecialchars(PHP_VERSION); ?></span> </div> <div class="item"> <span class="label">Host:</span> <span class="value"><?php echo htmlspecialchars($host); ?></span> </div> <div class="item"> <span class="label">Database:</span> <span class="value"><?php echo htmlspecialchars($db_name); ?></span> </div> <div class="item"> <span class="label">User:</span> <span class="value"><?php echo htmlspecialchars($username); ?></span> </div> <div class="item"> <span class="label">Connection:</span> <span class="value"> <?php if ($conn_status === 'SUCCESS'): ?> <span class="badge success">SUCCESS</span> <?php else: ?> <span class="badge failed">FAILED</span> <?php endif; ?> </span> </div> <?php if ($conn_status === 'SUCCESS'): ?> <div class="item"> <span class="label">MySQL Server Version:</span> <span class="value"><?php echo htmlspecialchars($server_version); ?></span> </div> <div class="item"> <span class="label">Existing Tables in DB:</span> <span class="value"><?php echo $tables_count; ?> table(s)</span> </div> <?php else: ?> <div class="error-box"> <div><strong>PDO Error Code:</strong> <?php echo htmlspecialchars($pdo_code); ?></div> <div style="margin-top: 8px;"><strong>PDO Error Message:</strong> <?php echo htmlspecialchars($pdo_message); ?></div> </div> <?php endif; ?> <div class="note"> ⚠️ <strong>ข้อความความปลอดภัย:</strong> ไฟล์นี้ปลอดภัย ไม่มีการแสดงรหัสผ่าน กรุณาลบไฟล์นี้ออกจาก Host ทันทีหลังทดสอบเสร็จสิ้น </div> </div> </body> </html>
| ver. 1.4 |
Github
|
.
| PHP 7.4.33 | Generation time: 0.25 |
proxy
|
phpinfo
|
Settings