0Pricing
PHP Academy · Lección

Lectura de datos de formularios con superglobales

Acceda a los campos del formulario mediante las matrices _GET y _POST.

Lectura de datos de formularios con superglobales es una lección gratuita de PHP Academy en CoddyKit. Esta es la lección 2 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de PHP Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de PHP Academy incluye 4 lecciones en total.

Superglobales de PHP

Las superglobales son arrays integrados de PHP disponibles en todos los ámbitos; no necesita global para acceder a ellas dentro de las funciones.

Superglobales relacionadas con formularios: $_GET, $_POST, $_FILES, $_REQUEST

Acceso a los campos de $_POST

Lea los valores de un formulario POST accediendo a sus claves de array y proporcionando un valor predeterminado:

<?php
// Safe access with null coalescing
$username = $_POST['username'] ?? '';
$email    = $_POST['email']    ?? '';
$age      = (int) ($_POST['age'] ?? 0);

var_dump($username, $email, $age);

Acceso a los parámetros de $_GET

Lea los parámetros de la cadena de consulta de la URL desde $_GET:

<?php
// URL: /products.php?category=electronics&page=2&sort=price

$category = $_GET['category'] ?? 'all';
$page     = max(1, (int) ($_GET['page'] ?? 1));
$sort     = in_array($_GET['sort'] ?? '', ['price', 'name', 'date'])
            ? $_GET['sort']
            : 'name';

echo "Category: $category, Page: $page, Sort: $sort";

Gestión de casillas de verificación

Las casillas de verificación no marcadas NO se envían; compruébelas siempre con isset o ??:

<?php
// HTML: <input type="checkbox" name="newsletter">

$wantsNewsletter = isset($_POST['newsletter']);
// or:
$wantsNewsletter = ($_POST['newsletter'] ?? null) !== null;

echo $wantsNewsletter ? 'Subscribed' : 'Not subscribed';

Arrays de selección múltiple y casillas de verificación

Utilice atributos name con sintaxis de array para recopilar varios valores:

<!-- HTML -->
<!-- <input type="checkbox" name="tags[]" value="php"> -->
<!-- <input type="checkbox" name="tags[]" value="mysql"> -->

<?php
$tags = $_POST['tags'] ?? [];

if (!is_array($tags)) $tags = [];

foreach ($tags as $tag) {
    echo htmlspecialchars($tag) . PHP_EOL;
}

Información de $_SERVER

$_SERVER proporciona datos sobre el servidor y el entorno de la solicitud:

<?php
echo $_SERVER['REQUEST_METHOD'];   // GET or POST
echo $_SERVER['REQUEST_URI'];       // /page.php?foo=bar
echo $_SERVER['HTTP_HOST'];         // example.com
echo $_SERVER['REMOTE_ADDR'];       // client IP
echo $_SERVER['HTTP_USER_AGENT'];   // browser string

filter_input()

filter_input() lee y sanea valores de superglobales en un solo paso:

<?php
// Retrieve and validate an integer from POST
$age = filter_input(INPUT_POST, 'age', FILTER_VALIDATE_INT);
if ($age === false) {
    echo 'Invalid age';
}

// Retrieve and sanitize a string from GET
$name = filter_input(INPUT_GET, 'name', FILTER_SANITIZE_SPECIAL_CHARS);
echo $name;

filter_var() para validación

Valide y sanee valores que ya estén almacenados en variables:

<?php
$email = 'user@example.com';
$ip    = '192.168.1.1';
$url   = 'https://example.com';

var_dump(filter_var($email, FILTER_VALIDATE_EMAIL));  // string
var_dump(filter_var($ip,    FILTER_VALIDATE_IP));     // string
var_dump(filter_var($url,   FILTER_VALIDATE_URL));    // string

FILTER_SANITIZE frente a FILTER_VALIDATE

Dos modos de filter_var:

  • FILTER_VALIDATE_* — devuelve el valor si es válido y false si no lo es
  • FILTER_SANITIZE_* — elimina o codifica caracteres peligrosos y devuelve un valor limpio

Gestión de $_FILES

$_FILES contiene metadatos de los archivos subidos; cada archivo tiene cinco claves:

<?php
if (isset($_FILES['avatar'])) {
    $file = $_FILES['avatar'];
    
    echo $file['name'];     // original filename: photo.jpg
    echo $file['type'];     // MIME type: image/jpeg
    echo $file['size'];     // bytes: 45231
    echo $file['tmp_name']; // temp path on server
    echo $file['error'];    // 0 = no error
}

Patrón de procesamiento de formularios completos

Un patrón claro para gestionar el envío y la validación de un formulario:

<?php
$errors = [];
$name   = '';

if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    $name = trim($_POST['name'] ?? '');
    if (empty($name)) {
        $errors[] = 'Name is required';
    }
    if (empty($errors)) {
        // process...
        header('Location: /thanks.php');
        exit;
    }
}

Comprobación rápida

¿Qué envía al servidor PHP una casilla de verificación que no está marcada?

Repaso: superglobales

Superglobales principales para formularios:

  • $_GET — parámetros de la URL
  • $_POST — cuerpo de la solicitud
  • $_FILES — información de los archivos subidos
  • $_SERVER — entorno del servidor y de la solicitud
  • Utilice ?? para acceder con un valor predeterminado seguro
  • Utilice filter_input() para combinar la obtención y la validación

Preguntas frecuentes

¿La lección «Lectura de datos de formularios con superglobales» es gratis?

Sí — el texto completo de «Lectura de datos de formularios con superglobales» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de PHP Academy, actualiza a CoddyKit PRO. El curso de PHP Academy incluye 4 lecciones en total.

¿Qué aprenderé en «Lectura de datos de formularios con superglobales»?

Acceda a los campos del formulario mediante las matrices _GET y _POST. Practicas PHP Academy con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.

¿Necesito experiencia previa para empezar PHP Academy?

No se requiere experiencia previa. PHP Academy en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 2 de 4.

¿Cuánto tiempo toma la lección «Lectura de datos de formularios con superglobales»?

La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.

¿Puedo escribir y ejecutar código en esta lección de PHP Academy?

Sí. Cada lección de PHP Academy incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.

Todas las lecciones de este curso

  1. GET frente a POST: cuándo usar cada uno
  2. Lectura de datos de formularios con superglobales
  3. Técnicas de validación de entradas
  4. Saneamiento de entradas de usuario
← Volver a PHP Academy