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
)");
// Función para generar código corto
function generarCodigo($longitud = 6) {
return substr(str_shuffle("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"), 0, $longitud);
}
// Si recibo un nuevo enlace para acortar
if (isset($_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]);
echo "Tu enlace acortado: ".$_SERVER['HTTP_HOST']."/?r=$code";
exit;
}
// Si acceden con un código corto
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.";
}
}
?>
Mi Acortador
Suscribirse a:
Comentarios de la entrada (Atom)
setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); // Crear tabla si no existe $db->exec("CREATE TABLE IF NOT EXISTS links ( ...
-
setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); // Crear tabla si no existe $db->exec("CREATE TABLE IF NOT EXISTS links ( ...
-
setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); // Crear tabla si no existe $db->exec("CREATE TABLE IF NOT EXISTS links ( ...
-
setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); // Crear tabla si no existe $db->exec("CREATE TABLE IF NOT EXISTS links ( ...
No hay comentarios.:
Publicar un comentario