Cuando se envía un formulario a un script PHP, las variables de
dicho formulario pasan a estar automáticamente disponibles en el
script gracias a PHP. Por ejemplo, consideremos el siguiente
formulario:
Ejemplo 7-1. Variables de formulario simples <form action="foo.php3" method="post">
Name: <input type="text" name="name"><br>
<input type="submit">
</form> |
|
Cuando es enviado, PHP creará la variable
$name, que contendrá
lo que sea que se introdujo en el campo Name:
del formulario.
PHP también maneja arrays en el contexto de variables de formularios,
pero sólo en una dimensión. Se puede, por ejemplo, agrupar juntas
variables relacionadas, o usar esta característica para recuperar
valores de un campo select input múltiple:
Ejemplo 7-2. Variables de formulario más complejas <form action="array.php" method="post">
Name: <input type="text" name="personal[name]"><br>
Email: <input type="text" name="personal[email]"><br>
Beer: <br>
<select multiple name="beer[]">
<option value="warthog">Warthog
<option value="guinness">Guinness
<option value="stuttgarter">Stuttgarter Schwabenbräu
</select>
<input type="submit">
</form> |
|
Si la posibilidad de PHP de track_vars está activada, ya sea
mediante la opción de configuración track_vars o mediante la directiva
<?php_track_vars?>, las
variables enviadas con los métodos POST o GET también se encontrarán
en los arrays asociativos globales $HTTP_POST_VARS y $HTTP_GET_VARS.
Cuando se envía un formulario, es posible usar una imagen en vez
del botón submit estándar con una etiqueta como:
Cuando el usuario hace click en cualquier parte de la imagen, el
formulario que la acompaña se transmitirá al servidor con dos
variables adicionales, sub_x y sub_y. Estas contienen las coordenadas
del click del usuario dentro de la imagen. Los más experimentados
puede notar que los nombres de variable enviados por el navegador
contienen un guión en vez de un subrayado (guión bajo), pero PHP
convierte el guión en subrayado automáticamente.
PHP soporta cookies de HTTP de forma transparente tal y como están
definidas en en las Netscape's Spec.
Las cookies son un mecanismo para almacenar datos en el navegador y así
rastrear o identificar a usuarios que vuelven. Se pueden crear cookies
usando la función SetCookie(). Las cookies son parte
de la cabecera HTTP, así que se debe llamar a la función SetCookie antes
de que se envíe cualquier salida al navegador. Es la misma restricción
que para la función header(). Cualquier cookie que
se reciba procedente del cliente será convertida automáticamente en
una variable de PHP como con los datos en los métodos GET y POST.
Si se quieren asignar múltiples valores a una sola cookie,
basta con añadir [] al nombre de la.
Por ejemplo:
Nótese que una cookie reemplazará a una cookie anterior que tuviese el
mismo nombre en el navegador a menos que el camino (path) o el
dominio fuesen diferentes. Así, para una aplicación de carro de la
compra se podría querer mantener un contador e ir pasándolo. P.ej.
Ejemplo 7-3. SetCookie Example $Count++;
SetCookie ("Count", $Count, time()+3600);
SetCookie ("Cart[$Count]", $item, time()+3600); |
|
PHP hace accesibles las variables de entorno automáticamente
tratándolas como variables normales.
Dado que la información que llega vía mecanismos GET, POST y Cookie
crean automáticamente variables de PHP, algunas veces es mejor
leer variables del entorno explícitamente para asegurarse
de que se está trabajando con la versión correcta. La función
getenv() se puede usar para ello. También
se puede asignar un valor a una variable de entorno con la
función putenv().
Típicamente, PHP no altera los nombres de las variables cuando se
pasan a un script. De todas formas, hay que notar que el punto
no es un carácter válido en el nombre de una variable PHP.
Por esta razón, mire esto:
$varname.ext; /* nombre de variable no válido */ |
Lo que el intérprete ve es el nombre de una variable $varname, seguido
por el operador de concatenación, y seguido por la prueba
(es decir, una cadena sin entrecomillar que no coincide con ninguna
palabra clave o reservada conocida) 'ext'. Obviamente, no se pretendía
que fuese este el resultado.
Por esta razón, es importante hacer notar que PHP reemplazará
automáticamente cualquier punto en los nombres de variables de
entrada por guiones bajos (subrayados).
Dado que PHP determina los tipos de las variables y los convierte
(generalmente) según necesita, no siempre resulta obvio de qué tipo
es una variable dada en un momento concreto. PHP incluye varias
funciones que descubren de qué tipo es una variable. Son
gettype(), is_long(),
is_double(), is_string(),
is_array(), y
is_object().