jueves, 7 de junio de 2012

El Array SuperGlobal $_GET de PHP


$_GET es un Array asociativo para realizar consultas al servidor mediante parámetros a través de la URL.

Ejemplo ... <a href="prueba.php?parametro1=valor1&parametro2=valor2">Método GET</a> 

Tener en cuenta que para realizar este tipo de consulta después del nombre del archivo debe ir el signo de interrogación, para indicar que se trata de una consulta, para separar los parámetros hay que utilizar el carácter & y por supuesto no meter espacios en blanco en la consulta. 

*Seguridad: El ejemplo que se muestra más abajo, muestra un ejemplo de como filtrar los datos con preg_match(), ten en cuenta que si no filtras los datos al realizar consultas a una base de datos por ejemplo, puedes tener graves problemas de seguridad.

*Nota importante: limitar el uso de este método para consultas simples que no requieran información de usuarios, o detalles que puedan comprometer la integridad del servidor, para ese tipo de consultas más estrictas usar el método POST.

 Imagen 1 del ejemplo ...

 
Imagen 2 del ejemplo, muestra un error cuando introduces en los parámetros de la url otro valor que no sean letras ...



Código de ejemplo ...

<?php

/* By http://php-estudios.blogspot.com */

/* $_GET - Array asociativo para realizar consultas al servidor mediante parámetros en la URL */

/* Importante: filtrar los datos siempre que se realice una consulta al servidor, ya sea a través de GET o POST */

$resultado = "";
$error = "";
if (isset($_GET["lenguaje"]) || isset($_GET["tema"])){
$lenguaje = $_GET["lenguaje"];
$tema = $_GET["tema"];

/*Filtrado de datos para aceptar solo letras*/
if (!preg_match("/^[a-zA-Z]+$/", $lenguaje) || !preg_match("/^[a-zA-Z]+$/", $tema))
{
$error = "<p style='color: red;'>Sólo se aceptan letras</p>";
}
else
{
$resultado = "lenguaje=$lenguaje&tema=$tema";
}
}
?>

<?php echo $error; ?>
<a href="prueba.php?lenguaje=PHP&tema=get">MÉTODO GET</a>
<h3><?php echo $resultado; ?></h3>




No hay comentarios: