D DIGITOMENORES
DIGITO Systems · Tecnología con alma
11 módulos · 62 lecciones
Inicio / Módulo 02
MÓDULO 02 · El motor detrás de la web

Backend real

PHP, formularios, bases de datos MySQL y las operaciones CRUD que mueven cualquier aplicación real.

0 / 5 lecciones completadas (0%)

Lección 1

PHP desde cero

📘 Explicación

PHP es un lenguaje que se ejecuta en el servidor, no en el navegador del visitante. Esto significa que puede leer archivos, hablar con bases de datos y generar HTML dinámico antes de enviarlo al usuario. El código PHP va entre las etiquetas <?php y ?>.

PHP
<?php
$nombre = "Jorge";
$edad = 15;

echo "<h1>Hola, " . $nombre . "</h1>";

if ($edad >= 13) {
    echo "<p>Puedes acceder al curso DIGITOMENORES.</p>";
}
?>
🧠 Ejercicio interactivo

¿Dónde se ejecuta el código PHP?

Lección 2

Formularios + validación

📘 Explicación

Un formulario recoge datos del usuario (nombre, email, mensaje) y los envía al servidor. PHP los recibe mediante $_POST o $_GET, pero nunca hay que confiar en ellos a ciegas: siempre se deben validar antes de usarlos, comprobando que el email tiene formato correcto o que los campos obligatorios no están vacíos.

PHP
<?php
if ($_SERVER["REQUEST_METHOD"] == "POST") {
    $email = trim($_POST["email"]);

    if (empty($email)) {
        echo "El email es obligatorio.";
    } elseif (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
        echo "El email no tiene un formato valido.";
    } else {
        echo "Email correcto: " . htmlspecialchars($email);
    }
}
?>
<form method="POST">
  <input type="email" name="email" required>
  <button type="submit">Enviar</button>
</form>
🧠 Ejercicio interactivo

¿Por qué no basta con validar el email solo en JavaScript, en el navegador?

Lección 3

Conexión PHP ↔ MySQL

📘 Explicación

MySQL es un gestor de bases de datos: guarda información en tablas, como una gran hoja de cálculo organizada. PHP se conecta a MySQL usando la extensión PDO o mysqli para leer y escribir datos, por ejemplo los usuarios registrados en una web.

PHP
<?php
$host = "localhost";
$bd   = "digitomenores";
$usuario = "usuario_bd";
$clave   = "clave_segura";

try {
    $pdo = new PDO("mysql:host=$host;dbname=$bd;charset=utf8mb4", $usuario, $clave);
    $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    echo "Conexion establecida correctamente.";
} catch (PDOException $e) {
    echo "Error de conexion: " . $e->getMessage();
}
?>
🧠 Ejercicio interactivo

¿Qué hace PDO en el ejemplo anterior?

Lección 4

CRUD completo

📘 Explicación

CRUD son las cuatro operaciones básicas sobre datos: Crear (Create), Leer (Read), Actualizar (Update) y Borrar (Delete). Casi cualquier aplicación —una lista de tareas, una tienda, una red social— es en el fondo un CRUD sobre una o varias tablas de base de datos.

PHP
<?php
// CREATE
$pdo->prepare("INSERT INTO tareas (titulo) VALUES (?)")->execute([$titulo]);

// READ
$tareas = $pdo->query("SELECT * FROM tareas")->fetchAll();

// UPDATE
$pdo->prepare("UPDATE tareas SET titulo = ? WHERE id = ?")->execute([$nuevoTitulo, $id]);

// DELETE
$pdo->prepare("DELETE FROM tareas WHERE id = ?")->execute([$id]);
?>
🧠 Ejercicio interactivo

¿Qué letra del CRUD corresponde a modificar un dato ya existente, como cambiar el título de una tarea?

📎 Recursos oficiales
Lección 5

Seguridad básica (SQL Injection)

📘 Explicación

Si un formulario mete directamente lo que escribe el usuario dentro de una consulta SQL, una persona con malas intenciones podría escribir código SQL en vez de un nombre normal y manipular la base de datos. Esto se llama inyección SQL, y se evita usando siempre consultas preparadas (prepared statements).

PHP
// INSEGURO - nunca hagas esto:
$sql = "SELECT * FROM usuarios WHERE nombre = '" . $_POST["nombre"] . "'";

// SEGURO - con consulta preparada:
$stmt = $pdo->prepare("SELECT * FROM usuarios WHERE nombre = ?");
$stmt->execute([$_POST["nombre"]]);
$usuario = $stmt->fetch();
🧠 Ejercicio interactivo

¿Por qué las consultas preparadas evitan la inyección SQL?