Las variables $_GET y $_POST en PHP se utilizan para recuperar información de un formulario, como la entrada del usuario.
Una cosa importante a tener en cuenta es que al procesar formularios HTML, PHP puede hacer que los elementos del formulario de la página HTML estén disponibles automáticamente para los scripts PHP.
El siguiente ejemplo contiene un formulario HTML con dos campos de entrada y un botón de envío.
<html><head><metacharset="utf-8"><title>Red de código fuente (downcodes.com)</title></head><body> <formaction="welcome.php" método="post" > Nombre: <inputtype="text"name="fname">Edad: <inputtype="text"name="age"><inputtype="submit"value="submit"></form> </body>< /html>
Cuando el usuario completa el formulario anterior y hace clic en el botón enviar, los datos del formulario se enviarán al archivo PHP llamado "welcome.php":
Bienvenido<?phpecho$_POST["fname"]; ?>!<br>Tu edad es <?phpecho$_POST["age"];
Explicaremos las variables $_GET y $_POST en PHP en el próximo capítulo.
En el siguiente ejemplo, configuramos tres opciones para el menú desplegable. El formulario utiliza el método GET para obtener datos. Si el valor del atributo de acción está vacío, significa que se envía al script actual. el menú desplegable a través del atributo de nombre de seleccionar:
<?php$q= isset($_GET['q'])? htmlspecialchars($_GET['q']): '';if($q){ if($q=='CODERCTO'){ echo' Red de código fuente<br>http://www.downcodes.com'; }elseif($q=='GOOGLE'){ echo'Búsqueda de Google<br>http://www.google.com'; }elseif($q=='TAOBAO'){ echo'Taobao<br>http://www.taobao.com'; }}else{?><formaction=""method="get"> <selectname=" q"> <optionvalue="">Seleccione un sitio:</option> <optionvalue="CODERCTO">codercto</option> <optionvalue="GOOGLE">Google</option> <optionvalue="TAOBAO">Taobao</option> </select> <inputtype="submit"value="submit"> </form><?php}?>
Si el menú desplegable es de selección múltiple (multiple="multiple"), podemos obtenerlo configurando select name="q[]" como una matriz. El siguiente código se envía mediante POST:
<?php$q= isset($_POST['q'])? $_POST['q']: '';if(is_array($q)){ $sites= array( 'CODERCTO'=> 'Código fuente Red: http://www.downcodes.com', 'GOOGLE'=> 'Búsqueda de Google: http://www.google.com', 'TAOBAO'=> 'Taobao: http://www.taobao.com', ); foreach($qas$val){ //PHP_EOL es una constante, utilizada para saltos de línea echo$sites[$val]. =" "method="post"> <selectmultiple="multiple"name="q[]"> <optionvalue="">Seleccione un sitio:</option> <optionvalue="CODERCTO">codercto</option> <optionvalue="GOOGLE">Google</option> <optionvalue="TAOBAO">Taobao</option> </select> <inputtype="submit"value="Enviar"> </form><?php}?>
Los valores del atributo de nombre en el formulario del botón de opción de PHP son consistentes, pero los valores de los valores son diferentes. El código es el siguiente:
<?php$q= isset($_GET['q'])? htmlspecialchars($_GET['q']): '';if($q){ if($q=='CODERCTO'){ echo' Red de código fuente<br>http://www.downcodes.com'; }elseif($q=='GOOGLE'){ echo'Búsqueda de Google<br>http://www.google.com'; }elseif($q=='TAOBAO'){ echo'Taobao<br>http://www.taobao.com'; }}else{?><formaction=""method="get"> <inputtype=" radio"name="q"value="CODERCTO"/>codercto <inputtype="radio"name="q"value="GOOGLE"/>Google <inputtype="radio"name="q"value="TAOBAO"/>Taobao <inputtype="submit"value="submit"></form><?php}?>
La casilla de verificación PHP puede seleccionar múltiples valores:
<?php$q= isset($_POST['q'])? $_POST['q']: '';if(is_array($q)){ $sites= array( 'CODERCTO'=> 'Código fuente Red: http://www.downcodes.com', 'GOOGLE'=> 'Búsqueda de Google: http://www.google.com', 'TAOBAO'=> 'Taobao: http://www.taobao.com', ); foreach($qas$val){ //PHP_EOL es una constante, utilizada para saltos de línea echo$sites[$val]. =" "método="post"> <inputtype="checkbox"name="q[]"value="CODERCTO">codercto<br> <inputtype="checkbox"name="q[]"value="GOOGLE">Google<br> <inputtype="checkbox"name="q[]"value="TAOBAO">Taobao<br> <inputtype=" enviar"valor="enviar"></formulario><?php}?>
Deberíamos validar la entrada del usuario (a través de un script del lado del cliente) siempre que sea posible. La validación del navegador es más rápida y elimina menos presión sobre el servidor.
Si es necesario insertar la entrada del usuario en una base de datos, debería considerar utilizar la validación del servidor. Una buena forma de validar un formulario en el servidor es pasar los datos del formulario a la página actual (es mejor el envío asincrónico), en lugar de saltar a una página diferente. De esta forma, los usuarios pueden recibir mensajes de error en la misma página del formulario. Será más fácil para los usuarios encontrar errores.