Contenido:
En este ejemplo práctico aprenderás cómo implementar un sistema de comentarios básico en PHP y MySQL, ideal para integrarlo en blogs, artículos o cualquier sección donde tus usuarios puedan dejar opiniones.
🧩 Estructura del Proyecto
index.php
(formulario y muestra de comentarios)guardar_comentario.php
(procesa y guarda comentarios)- Base de datos: tabla
comentarios
🗃️ 1. Estructura de Base de Datos
CREATE TABLE comentarios (
id INT AUTO_INCREMENT PRIMARY KEY,
nombre VARCHAR(100) NOT NULL,
comentario TEXT NOT NULL,
fecha TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
📝 2. index.php
<?php
$conn = new mysqli("localhost", "root", "", "tu_base_de_datos");
$comentarios = $conn->query("SELECT * FROM comentarios ORDER BY fecha DESC");
?>
<form action="guardar_comentario.php" method="POST">
<input type="text" name="nombre" placeholder="Tu nombre" required><br>
<textarea name="comentario" placeholder="Escribe tu comentario" required></textarea><br>
<input type="submit" value="Enviar">
</form>
<h3>Comentarios:</h3>
<?php while ($row = $comentarios->fetch_assoc()): ?>
<div>
<strong><?= htmlspecialchars($row['nombre']) ?></strong> - <em><?= $row['fecha'] ?></em>
<p><?= nl2br(htmlspecialchars($row['comentario'])) ?></p>
<hr>
</div>
<?php endwhile; ?>
💾 3. guardar_comentario.php
<?php
$conn = new mysqli("localhost", "root", "", "tu_base_de_datos");
if ($_SERVER["REQUEST_METHOD"] == "POST") {
$nombre = $conn->real_escape_string($_POST['nombre']);
$comentario = $conn->real_escape_string($_POST['comentario']);
$conn->query("INSERT INTO comentarios (nombre, comentario) VALUES ('$nombre', '$comentario')");
header("Location: index.php");
}
?>
✅ Puntos importantes
- Usa
htmlspecialchars
para prevenir XSS. - Puedes paginar los comentarios si hay muchos.
- Para producciones reales, usa sentencias preparadas (PDO o mysqli prepared).