Ruta del archivo: /home/invitaciondigita/public_html/includes/config.php
<?php
// Configuraci��n de la base de datos
define('DB_HOST', 'localhost');
define('DB_NAME', 'invitaciondigita_resseller');
define('DB_USER', 'invitaciondigita_resseller');
define('DB_PASS', '***HIDDEN***');
// Configuraci��n de precios
define('COST_PER_REQUEST', 0.001);
define('CURRENCY', 'USD');
// Configuraci��n de la API
define('API_BASE_URL', 'https://' . $_SERVER['HTTP_HOST'] . '/api/v1');
// Conexi��n a la base de datos con mejor manejo de errores
function getDB() {
try {
$pdo = new PDO("mysql:host=" . DB_HOST . ";dbname=" . DB_NAME . ";charset=utf8mb4", DB_USER, DB_PASS);
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$pdo->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC);
$pdo->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);
return $pdo;
} catch(PDOException $e) {
// Log del error sin mostrar detalles sensibles
error_log("Database connection error: " . $e->getMessage());
// En desarrollo, puedes mostrar m��s detalles
if ($_SERVER['HTTP_HOST'] === 'localhost' || strpos($_SERVER['HTTP_HOST'], 'dev') !== false) {
throw new Exception("Error de conexi��n a la base de datos: " . $e->getMessage());
} else {
throw new Exception("Error del servidor. Intenta m��s tarde.");
}
}
}
// Funci��n para verificar que las tablas necesarias existan
function verifyDatabaseTables() {
try {
$db = getDB();
$required_tables = ['users', 'api_usage'];
$existing_tables = $db->query("SHOW TABLES")->fetchAll(PDO::FETCH_COLUMN);
$missing_tables = array_diff($required_tables, $existing_tables);
if (!empty($missing_tables)) {
error_log("Missing tables: " . implode(', ', $missing_tables));
return false;
}
return true;
} catch (Exception $e) {
error_log("Table verification failed: " . $e->getMessage());
return false;
}
}
?>