Cómo pasar variables a la siguiente página en PHP
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 $_POST
o $_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.
Usando session
y cookie
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.