miércoles, 24 de septiembre de 2025

setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); // Crear tabla si no existe $db->exec("CREATE TABLE IF NOT EXISTS links ( id INTEGER PRIMARY KEY AUTOINCREMENT, code TEXT UNIQUE, url TEXT, created_at DATETIME DEFAULT CURRENT_TIMESTAMP )"); // ----------- CONFIGURACIÓN ----------- // Usuario y contraseña para panel admin $ADMIN_USER = "admin"; $ADMIN_PASS = "12345"; // ------------------------------------ // Función para generar código function generarCodigo($longitud = 6) { return substr(str_shuffle("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"), 0, $longitud); } // ------- LOGIN -------- if (isset($_POST['login'])) { if ($_POST['user'] === $GLOBALS['ADMIN_USER'] && $_POST['pass'] === $GLOBALS['ADMIN_PASS']) { $_SESSION['admin'] = true; } else { $error = "Usuario o contraseña incorrectos."; } } // ------- LOGOUT -------- if (isset($_GET['logout'])) { session_destroy(); header("Location: index.php"); exit; } // ------- CREAR ENLACE ------- if (isset($_POST['url']) && !empty($_POST['url'])) { $url = trim($_POST['url']); $code = generarCodigo(); $stmt = $db->prepare("INSERT INTO links (code, url) VALUES (:code, :url)"); $stmt->execute([':code' => $code, ':url' => $url]); $nuevo = $_SERVER['HTTP_HOST'] . "/?r=$code"; } // ------- REDIRECCIÓN ------- if (isset($_GET['r'])) { $code = $_GET['r']; $stmt = $db->prepare("SELECT url FROM links WHERE code = :code"); $stmt->execute([':code' => $code]); $link = $stmt->fetch(PDO::FETCH_ASSOC); if ($link) { header("Location: " . $link['url']); exit; } else { echo "⚠️ Enlace no encontrado."; exit; } } // ------- BORRAR ENLACE ------- if (isset($_GET['delete']) && isset($_SESSION['admin'])) { $id = intval($_GET['delete']); $db->exec("DELETE FROM links WHERE id = $id"); header("Location: index.php?admin=1"); exit; } // ------- RESETEAR TODO ------- if (isset($_GET['reset']) && isset($_SESSION['admin'])) { $db->exec("DELETE FROM links"); header("Location: index.php?admin=1"); exit; } ?> Mi Acortador

🔗 Mi Acortador

setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); // Crear tabla si no existe $db->exec("CREATE TABLE IF NOT EXISTS links ( ...