4. Información complementaria
a. Argumentos con el mismo nombre
Si pasa en la URL dos argumentos con el mismo nombre, $_GET va a tener en cuenta el último nombre.
Por ejemplo:
La página get_recibe.php con la URL:
http://127.0.0.1/get_recibe.php?nombre=Juan&nombre=Roberto
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="es" lang="es">
<head>
<title>Ejercicio con GET</title>
<meta http-equiv="Content-Type" content="text/html;
charset=iso-8859-1" />
</head>
<body>
<?php
if (isset($_GET["nombre"])) { //comprueba que el argumento nombre
//está especificado
echo "El nombre es:". $_GET["nombre"];
}
?>
</body>
</html>
Da como resultado:
El nombre es:Roberto
b. Argumentos de tipo tabla
PHP permite pasar en la URL los argumentos en forma de tabla.
Es posible que no quiera introducir un índice, como en este ejemplo: http://127.0.0.1/get_recibe.php?dato[ ]=Juan&dato[ ]=Gómez
En este caso, las claves de la tabla son 0 y 1 respectivamente.
También puede introducir un índice, por ejemplo: http://127.0.0.1/get_recibe.php?dato[nombre]=Juan&dato[apellido]= Gómez
En este caso, las claves de la tabla son nombre y apellido respectivamente.
Por ejemplo:
La página get_recibe.php con la URL:
http://127.0.0.1/get_recibe.php?dato[nombre]=Juan&dato[apellido]= Gómez
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="es" lang="es">
<head>
<title>Ejercicio con GET</title>
<meta http-equiv="Content-Type" content="text/html;
charset=iso-8859-1" />
</head>
<body>
<?php
if (isset($_GET["dato"])) { //comprueba que el argumento dato está
//especificado
echo "Los datos son:";
foreach ($_GET["dato"] as $valor) {
echo $valor." ";
}
}
?>
</body>
</html>
Da como resultado:
Los datos son:Juan Gómez
c. Argumentos con caracteres especiales
No puede pasar en una URL caracteres especiales, como & o ? o un espacio.
Y no puede escribir, por ejemplo:
http://127.0.0.1/get_recibe.php?argumento=Juan&Gómez
El servidor Web entenderá que hay dos variables argumento y Gómez, cuando lo que quiere hacer es pasar como argumento Juan&Gómez.
Para realizar esto, debe codificar la URL, es decir, transformar los caracteres especiales en un código que el servidor Web pueda entender.
Hay dos funciones en PHP que permiten hacerlo: urlencode() y rawurlencode().
Estas funciones toman como argumento la URL que debe codificar y devuelven la URL sin los caracteres especiales. Se diferencian en que la función rawurlencode() transforma los espacios en %20, mientras que la función urlencode() los transforma en +.
Por ejemplo:
<?php
$argumento = "Juan&Gómez Pablo";
echo urlencodigo($argumento)."<br />";
echo rawurlencodigo($argumento)."<br />";
?>
Da como resultado:
Juan%26Gómez+Pablo
Juan%26Gómez%20Pablo
Para pasar como argumento el valor "Juan&Gómez Pablo", debe escribir la siguiente URL: http://127.0.0.1/get_recibe.php?argumento=Juan%26Gómez%20Pablo
Otro ejemplo:
La página get_envia.php contiene un enlace que llama a la página get_recibe.php con el argumento Juan&Gómez.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="es" lang="es">
<head>
<title>Ejercicio con GET</title>
<meta http-equiv="Content-Type" content="text/html;
charset=iso-8859-1" />
</head>
<body>
<?php
$argumento = "Juan&Gómez"
?>
Aquí está el enlace con Juan&Gómez como argumento: <a
href="get_recibe.php?argumento=<?php echo urlencodigo($argumento)?>">
get_recibe.php con argumento</a>
</body>
</html>
Si observamos el código fuente en el navegador, tenemos:
<a href="get_recibe.php?argumento=Juan%26Gómez">
get_recibe.php con argumento</a>
La página get_recibe.php:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="es" lang="es">
<head>
<title>Ejercicio con GET</title>
<meta http-equiv="Content-Type" content="text/html;
charset=iso-8859-1" />
</head>
<body>
<?php
echo "El argumento es:".$_GET["argumento"];
?>
</body>
</html>
Da como resultado:
El argumento es:Juan&Gómez
Espero haber ayudado en algo. Hasta la próxima oportunidad!
Twittear
No hay comentarios:
Publicar un comentario