Cómo pasar variables a la siguiente página en PHP

  1. Usando GET y POST a través de un formulario HTML
  2. Usando session y cookie

Una variable PHP es un símbolo o nombre que equivale a un valor. Se utiliza para almacenar valores como valores, números, caracteres o direcciones de memoria para que puedan ser utilizados en cualquier parte del programa. Una simple variable puede ser utilizada en cualquier parte del programa, pero no es accesible fuera de él a menos que se pase usando un GET y POST a través de un formulario HTML, session o cookie.

Usando GET y POST a través de un formulario HTML

El formulario HTML es una de las características más poderosas de PHP. Cualquier elemento del formulario estará disponible automáticamente para el destino action del formulario.

Post Request

<form action="nextPage.php" method="POST">
    <input type="text" name="email">
    <input type="text" name="username">
    <input type="submit" name="submit">
</form>

Buscando datos en nextPage.php

$username = isset($_POST['username']) ? $_POST['username'] : "";
$email       = isset($_POST['email']) ? $_POST['email'] : "";
echo "Username: ".$username;
echo "Email: ".$email;

La muestra de salida del script puede ser:

Username: johndoe
Email: johndoe@gmail.com

El ejemplo anterior muestra cómo pasar una variable usando POST a través de un formulario HTML. El elemento del formulario necesita tener el atributo action y method. La action contiene la siguiente página, en este caso, es nextPage.php. El método puede ser un POST o un GET. Luego puedes acceder a los elementos de la nextPage.php usando un $_POSTo $_GET.

Solicitud de GET

<?php
$phpVariable = "Dog";
?>
<a href="nextPage.php?data=<?=$phpVariable?>">Bring me to nextPage</a>

Este ejemplo creará una variable GET y se puede acceder a ella en nextPage.php.

Ejemplo:

echo $phpVariable = $_GET['phpVariable'];
//output: Dog

El GET puede ser accedido usando $_GET

Otra forma es añadir un elemento oculto en un formulario HTML que se envía a la siguiente página.

Ejemplo:

<form action="nextPage.php" method="POST">
    <input type="hidden" name="phpVariable" value="Dog">
    <input type="submit" name="submit">
</form>

PáginaSiguiente.php

//Using POST
$phpVariable = $_POST['phpVariable'];
//Using GET
$phpVariable = $_GET['phpVariable'];
//Using GET, POST or COOKIE;
$phpVariable = $_REQUEST['phpVariable'];

Puedes cambiar el método de POST a GET para usar la solicitud de GET. POST y GET son inseguros, pero GET es más fácil de hackear ya que está disponible a través del front-end.

La $_REQUEST puede aceptar tanto GET, POST o COOKIE. Es bueno usar $_REQUEST en los formularios de auto-referencia para validaciones.

La session y la cookie son más fáciles de usar, pero la session es mucho más segura que las cookies, pero no completamente segura.

session

//page 1
$phpVariable = "Dog";
$_SESSION['animal'] = $phpVariable;

//page 2
$value = $_SESSION['animal'];

Nota: Al usar la session, recadena siempre añadir session_start() en ambas páginas antes de acceder a el array $_SESSION.

cookie

//page 1
$phpVariable = "Dog";
$_COOKIE['animal'] = $phpVariable;

//page 2
$value = $_COOKIE['animal'];

La diferencia más obvia entre los cookies y la session es que esa session se almacenará en el lado del servidor mientras que los cookies tendrán el lado del cliente como almacenamiento.

Artículo relacionado - PHP Variable

  • Declarar variable global en PHP