PATH:
home
/
u865795251
/
domains
/
whatisnewis.com
/
public_html
/
everestentp
/
Editing: db.php
<?php // db.php - Database connection and setup require_once __DIR__ . '/vendor/autoload.php'; use Dotenv\Dotenv; // Load environment variables if (file_exists(__DIR__ . '/.env')) { $dotenv = Dotenv::createImmutable(__DIR__); $dotenv->load(); } /** * Get Database Connection * @return PDO */ function getDB() { $host = $_ENV['DB_HOST'] ?? 'localhost'; $dbname = $_ENV['DB_NAME'] ?? 'u865795251_everest'; $username = $_ENV['DB_USER'] ?? 'u865795251_everest'; $password = $_ENV['DB_PASS'] ?? '987TWO027@Nine'; try { $pdo = new PDO("mysql:host=$host;dbname=$dbname;charset=utf8mb4", $username, $password); $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); $pdo->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC); return $pdo; } catch (PDOException $e) { throw new Exception("Database Connection failed: " . $e->getMessage()); } } /** * Get setting value from settings table * @param string $key * @param string $default * @return string */ function getSetting($key, $default = '') { try { $pdo = getDB(); $stmt = $pdo->prepare("SELECT setting_value FROM settings WHERE setting_key = ?"); $stmt->execute([$key]); $val = $stmt->fetchColumn(); return $val !== false ? $val : $default; } catch (Exception $e) { return $default; } } /** * Set or Update setting value * @param string $key * @param string $value */ function setSetting($key, $value) { try { $pdo = getDB(); $stmt = $pdo->prepare("INSERT INTO settings (setting_key, setting_value) VALUES (?, ?) ON DUPLICATE KEY UPDATE setting_value = VALUES(setting_value)"); $stmt->execute([$key, $value]); } catch (Exception $e) { // Log Error } } /** * Initialize Database tables if not exist */ function initDB() { try { $pdo = getDB(); $sql = "CREATE TABLE IF NOT EXISTS inquiries ( id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(100) NOT NULL, email VARCHAR(100) NOT NULL, phone VARCHAR(30), company VARCHAR(100), budget VARCHAR(50), quantity VARCHAR(50), specs TEXT, message TEXT, category VARCHAR(100), form_type VARCHAR(50), status ENUM('pending', 'contacted', 'resolved') DEFAULT 'pending', created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;"; $pdo->exec($sql); // Create Admin Table for login support $sqlAdmin = "CREATE TABLE IF NOT EXISTS admin_users ( id INT AUTO_INCREMENT PRIMARY KEY, username VARCHAR(50) NOT NULL UNIQUE, password_hash VARCHAR(255) NOT NULL, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;"; $pdo->exec($sqlAdmin); // Create Settings Table for general configuration (e.g. hero image) $sqlSettings = "CREATE TABLE IF NOT EXISTS settings ( id INT AUTO_INCREMENT PRIMARY KEY, setting_key VARCHAR(100) NOT NULL UNIQUE, setting_value TEXT, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;"; $pdo->exec($sqlSettings); // Create Products Table $sqlProducts = "CREATE TABLE IF NOT EXISTS products ( id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(255) NOT NULL, category VARCHAR(100), image_path VARCHAR(255), created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;"; $pdo->exec($sqlProducts); // Insert Default Admin if not exists $stmt = $pdo->prepare("SELECT COUNT(*) FROM admin_users"); $stmt->execute(); if ($stmt->fetchColumn() == 0) { $defaultUser = $_ENV['ADMIN_USER'] ?? 'admin'; $defaultPass = $_ENV['ADMIN_PASS'] ?? 'AdminEverest2026!'; $hashedPass = password_hash($defaultPass, PASSWORD_DEFAULT); $stmt = $pdo->prepare("INSERT INTO admin_users (username, password_hash) VALUES (?, ?)"); $stmt->execute([$defaultUser, $hashedPass]); } } catch (Exception $e) { // Log error, don't crash the script run immediately if loaded elsewhere without fallback error_log("DB Init Error: " . $e->getMessage()); } } // Run on load to verify tables if (isset($_GET['setup']) && $_GET['setup'] === 'y') { initDB(); echo "Database structure initialized successfully."; exit; }
SAVE
CANCEL