Bucles y condiciones son muy útiles para procesar los datos dentro de un
mismo script. Sin embargo, en un sitio Internet, las páginas vistas y los
scripts utilizados son numerosos. Muy a menudo necesitamos que nuestros
distintos scripts estén conectados unos con otros y que se sirvan de variables
comunes. Por otro lado, el usuario interacciona por medio de formularios cuyos
campos han de ser procesados para poder dar una respuesta. Todo este tipo de
factores dinámicos han de ser eficazmente regulados por un lenguaje como PHP.
Es posible que ya os hayáis percatado de que las variables de un script tienen
una validez exclusiva para el script y que nos resulta imposible conservar su
valor cuando ejecutamos otro archivo distinto aunque ambos estén enlazados.
Existen varias formas de enviar las variables de una página a otra de manera a
que la página destino reconozca el valor asignado por el script de origen:
Pasar variables por URL
Para pasar las variables de una página a otra lo podemos hacer introduciendo
dicha variable dentro del enlace hipertexto de la página destino. La sintaxis
sería la siguiente
||
||
||
|| <a href="destino.php?variable1=valor1&variable2=valor2&...">Mi
enlace</a> ||
Podéis observar que estas variables no poseen el símbolo $ delante. Esto es
debido a que en realidad este modo de pasar variables no es específico de PHP
sino que es utilizado por otros lenguajes.
Ahora nuestra variable pertenece también al entorno de la página destino.php
y está lista para su explotación.
|| Nota: No siempre se definen automáticamente las
variables recibidas por parámetro en las páginas web, depende de una
variable de configuración de PHP: register_globals, que tiene que estar
activada para que así sea. Ver comentarios del artículo al final de la
página para más información. ||
Para aclarar posibles dudas, veamos esto en forma de ejemplo. Tendremos pues dos
páginas, origen.html (no es necesario darle extensión PHP puesto que no
hay ningún tipo de código) y destino.php:
||
||
|| <HTML>
<HEAD>
<TITLE>origen.html</TITLE>
</HEAD>
<BODY>
<a href="destino.php?saludo=hola&texto=Esto es una variable texto">Paso
variables saludo y texto a la página destino.php</a>
</BODY>
</HTML> ||
|| <HTML>
<HEAD>
<TITLE>destino.php</TITLE>
</HEAD>
<BODY>
<?
echo "Variable $saludo: $saludo <br>
";
echo "Variable $texto: $texto <br>
"
?>
</BODY>
</HTML> ||
$HTTP_GET_VARS
Recordamos que es posible recopilar en una variable tipo array el conjunto de
variables que han sido enviadas al script por este método a partir de la
variable de sistema $HTTP_GET_VARS, que es un array asociativo. Utilizándolo
quedaría así:
<?
echo "Variable $saludo: $HTTP_GET_VARS["saludo"] <br>
";
echo "Variable $texto: $HTTP_GET_VARS["texto"] <br>
"
?>
|| Nota: Aunque podamos recoger variables con este
array asociativo o utilizar directamente las variables que se definen en
nuestra página, resulta más seguro utilizar $HTTP_GET_VARS por dos razones,
la primera que así nos aseguramos que esa varible viene realmente de la URL
y la segunda, que así nuestro código será más claro cuando lo volvamos a
leer, porque quedará especificado que esa variable estamos recibiéndola por
la URL. ||
$_GET
A partir de la versión 4.1.0 de PHP se ha introducido el array asociativo $_GET,
que es idéntico a $HTTP_GET_VARS, aunque un poco más corto de escribir.