Hay dos métodos para pasar variables de una página a otra: utilizando un formulario o mediante la URL. Cada uno tiene una manera de recuperar los datos en la página de destino, el primero mediante el uso de la variable global $_POST
, el segundo mediente $_GET
.
Utilizaremos el primer método cuando tengamos que usar un formulario para que el usuario introduzca algún valor, como por ejemplo en un formulario de búsqueda o en uno de contacto que permita enviar un mensaje. Utilizaremos el segundo cuando sean variables que no dependan en absoluto de la interacción del usuario, sino que sencillamente queramos transferir de una página a otra.
Paso de variables mediante formulario y $_POST
En la página de origen construiremos un formulario. Transferiremos a la página de destino las variables deseadas mediante la marca input
de tipo hidden
, con el atributo name
las definiremos, y con el atributo value
les asignaremos un valor.
<form action="http://url.pagina.destino" method="post"> <input type="hidden" name="variable1" value="valor1" /> <input type="hidden" name="variable2" value="valor2" /> <input type="text" value="" /> <input type="submit" value="Buscar" /> </form>
Para recuperar las variables en la página dedestino bastará utilizar la variable global $_POST:
$v1 = $_POST['variable1']; $v2 = $_POST['variable2'];
Paso de variables mediante URL y $_GET
En la página de origen construiremos un enlace a la página de destino que incluya las variables a transferir, de la siguiente manera:
<a href="http://url.pagina.destino/?variable1=valor1&variable2=valor2">Enlace a página de destino</a>
Para recuperar las variables en la página dedestino bastará utilizar la variable global $_GET:
$v1 = $_GET['variable1']; $v2 = $_GET['variable2'];
96 comentarios
Gracias por el artículo y tutorial
Relacionado con este tema, una consulta:
¿Es posible generar url con los datos introducidos por el usuario de una web y que sean indexadas por google?
Siguiendo el ejemplo de este artículo si el usuario busca la distancia entre madrid y barcelona, al hacer el submit, se genera una url nueva con esos datos. ¿Es posible guardar de alguna forma esa nueva url y que google la indexe?. Y como de complejo sería sin tener muchos conocimientos de programación.
Hola Martín,
Google puede indexar esa URL, sí. Para ayudar a Google a encontrar esa URL y a darle importancia hay que referenciarlar, ir construyendo su reputación para los buscadores como Google. Para ello puedes enlazar dicha URL desde otras páginas., puedes incluirla en el sitemap de tu web… Esto son más técnicas de optimización para indexación en buscadores (SEO) que nociones sobre PHP.
Gracias Skotperez. Me ha servido de gran ayuda este post. y lo utilizo en mi sitio.
En el ejemplo que he puesto en mi comentarios si inserto distancia entre Madrid y Barcelona. en http://www.distanciaentre.org me genera esta url :
https://www.distanciaentre.org/calcular-ruta.php?salida=Madrid&destino=Barcelona
Esa es la url que quisiera fuera indexada por google de forma automática. Creo que la única forma sería que se almacenara en una base de datos.
Me sirvió, bastante, muchas gracias por la ayuda…
Hola, espero por favor puedas ayudarme
Tengo una pagina web donde ofrezco un curso.
El problema es que un organismo de gobierno me esta pidiendo que inserte un boton que redirija al usuario a una pagina de gobierno y al mismo tiempo le envie via POST unas variables.
Luego se supone que el usuario llenara un formulario y sera redirigido a mi pagina para continuar el curso.
Mi pagina esta en wordpress solo me manejo en eso, pero la inclusión de variables en un boton via POST ya se me escapa…
HEEEEEELP!!
Hola Luis,
lo que necesitas está explicado en la sección «Paso de variables mediante formulario y $_POST» de este artículo. La clave son los parámetros de la marca
form
: enurl
tienes que poner la URL del gobierno, y enmethod
post.En realidad hay form, pero javascript hace lo suyo, no lo diseñe yo, lo obtube de una web y me ayudo muchisimo. Saludos
$usuario=’ferbarrazaTDF’;
echo »
Procesando…
function enviarForm(){
document.nameForm.submit();
}
«;
Muchas gracias
te consulto tengo una variable en un archivo php pero lo quiero usar en otro archivo distinto al archivo destino se puede?