Pasar datos entre páginas es crucial en el desarrollo web con PHP. Este artículo explora métodos eficientes y seguros para lograrlo, centrándose en los enfoques más comunes: solicitudes GET/POST y gestión de sesiones.
Tabla de Contenido
- Usando Métodos GET y POST
- Aprovechando las Sesiones PHP
- Utilizando Cookies (con Precauciones)
- Eligiendo el Mejor Método
Usando Métodos GET y POST
GET y POST son métodos HTTP fundamentales para transmitir datos entre un cliente (navegador) y un servidor (script PHP). La principal diferencia radica en cómo se envían los datos y su visibilidad:
- GET: Los datos se anexan a la URL como parámetros de consulta (por ejemplo,
page.php?name=John&age=30
). Esto hace que los datos sean visibles en la barra de direcciones y es adecuado para datos pequeños y no sensibles. También se puede marcar fácilmente como favorito y compartir. - POST: Los datos se envían dentro del cuerpo de la solicitud HTTP, ocultos de la URL. Esto es preferible para conjuntos de datos más grandes o información sensible como contraseñas. No se puede marcar fácilmente como favorito ni compartir.
Ejemplo (GET):
page1.php:
<form action="page2.php" method="GET">
Nombre: <input type="text" name="name"><br>
<input type="submit" value="Enviar">
</form>
page2.php:
<?php
$name = isset($_GET['name']) ? htmlspecialchars($_GET['name']) : '';
echo "Hola, " . $name . "!";
?>
Ejemplo (POST): El formulario page1.php
simplemente cambiaría method="POST"
. page2.php
usaría $_POST['name']
en lugar de $_GET['name']
. Siempre desinfecte las entradas (usando htmlspecialchars()
como se muestra arriba) para evitar vulnerabilidades XSS.
Aprovechando las Sesiones PHP
Las sesiones ofrecen una forma robusta de gestionar los datos del usuario en varias páginas. Los datos se almacenan en el lado del servidor, vinculados a un ID de sesión único (generalmente una cookie). Esto garantiza la privacidad de los datos y es ideal para mantener el estado de inicio de sesión del usuario, carritos de compras, etc.
Ejemplo:
page1.php:
<?php
session_start();
$_SESSION['username'] = "John Doe";
?>
page2.php:
<?php
session_start();
echo "Bienvenido, " . $_SESSION['username'] . "!";
?>
Utilizando Cookies (con Precauciones)
Las cookies almacenan datos del lado del cliente (en el navegador del usuario). Son más pequeñas que las sesiones, pero ofrecen persistencia incluso después de cerrar el navegador (dependiendo de la configuración de las cookies). Sin embargo, las cookies se manipulan fácilmente y presentan riesgos de seguridad si no se manejan con cuidado. Evite almacenar datos sensibles en cookies.
Ejemplo:
page1.php:
<?php
setcookie("theme", "dark", time() + 86400); // Expira en 24 horas
?>
page2.php:
<?php
if (isset($_COOKIE['theme'])) {
echo "Tu tema es: " . $_COOKIE['theme'];
}
?>
Eligiendo el Mejor Método
El método óptimo depende de sus necesidades:
- GET: Datos simples, no sensibles, se puede marcar como favorito y compartir.
- POST: Datos más grandes, datos sensibles, centrado en la privacidad.
- Sesiones: Datos específicos del usuario en varias páginas, manteniendo el estado.
- Cookies: Datos pequeños y persistentes (con precaución en cuanto a la seguridad).
Siempre priorice la seguridad y desinfecte todas las entradas del usuario antes de usarlas en su código PHP.