PHP Obtenga datos de formulario a través de POST y GET

En muchas aplicaciones, necesitará recuperar datos ingresados ​​por el usuario de algún tipo de forma. Aquí hay un par de métodos para hacerlo con PHP.

Está creando un sitio web para que los voluntarios se registren con un nombre y un correo electrónico para un proyecto. Tiene un formulario simple donde los usuarios ingresan sus nombres y direcciones de correo electrónico. ¿Qué pasa cuando hacen clic en enviar en este formulario? No pasa nada si usas HTML antiguo. HTML no puede hacer nada en sí mismo. Necesitamos hacer que esto funcione con el poder de PHP.

Recuperar información de un formulario HTML es una habilidad básica de PHP que todos necesitan conocer ya que una gran parte de cualquier aplicación web trata los formularios de una forma u otra (por ejemplo, formularios de inicio de sesión, formularios de registro, formularios de configuración, formularios de correo electrónico, etc.) .

$ _GET y $ _POST

Tenemos dos variables predefinidas en PHP que se utilizan para obtener datos de un formulario HTML. Estos son $ _GET y $ _POST. Es posible que haya visto estos en un formulario HTML. La etiqueta de formulario de apertura tendrá un atributo llamado "obtener" o "publicar". Observe el siguiente ejemplo:



En este elemento de formulario HTML, le damos un atributo de método de GET. Esto significa que, para recuperar datos de este formulario, debemos usar la variable $ _GET en PHP. Por otro lado, si usamos method = "post" Tendríamos que usar la variable $ _POST. ¿Cuál es la diferencia? ¿Cómo conseguimos realmente los datos?

$ _GET

Para utilizar el método GET, configuraríamos nuestro formulario como en el ejemplo a continuación con el conjunto "get" establecido como el atributo del método.



Nombre:
Número:


Note que le dimos a cada campo de formulario una nombre atributo. Esto es necesario ya que tenemos que ser capaces de apuntar a cada campo. También le damos a cada campo de formulario un nombre significativo. Ahora, cuando el usuario hace clic en enviar, ¿qué pasa?

El atributo de acción especifica otro archivo en su servidor donde se envían los datos del formulario. Por lo tanto, la parte de PHP real no se ejecuta en la misma página que el formulario (aunque puede ser). Normalmente, se ejecuta en otro archivo. En el caso anterior, cuando el usuario hace clic en enviar, los datos del formulario se envían al archivo. process.php.

En el archivo process.php, tendríamos el siguiente código:

  

Verá que creo dos nuevas variables para almacenar los valores de mi formulario ($ nombre y $ número). Establecemos estas variables iguales a lo que se encuentra en el campo de formulario que tiene el nombre "fName" y "número".


$ _GET ["fName"];
$ _GET ["número"];

Por lo tanto, tomamos los valores de nuestro formulario que acabamos de completar de los campos especificados por nuestra variable $ _GET y los colocamos en dos nuevas variables. Luego, hacemos un eco de las variables que creamos para que el usuario muestre un mensaje en la página de acción.

Mi página de formulario HTML:

Luego, cuando hago clic en enviar, (note la url):

Esta es la diferencia entre GET y POST.. Con el método GET, nuestras variables se agregan a la URL de la página de procesamiento. Imagínese si estuviera obteniendo un campo de contraseña de un usuario, y se mostrara en la url. Es por eso que usar GET para recuperar información confidencial del usuario generalmente no es una buena idea. Esa es la razón por la que debería consultar POST para enviar información confidencial (por ejemplo, contraseñas de usuario, correos electrónicos, etc.).

$ _POST

Usamos la variable POST de la misma manera exacta que GET. La única diferencia es que nuestra información está oculta al usuario y no se muestra en la url. Tampoco tendremos límites en la cantidad de datos que puede enviar (para formularios muy grandes).

Para cambiar su método en el formulario a POST, use lo siguiente:


Nombre:
Número:

Para cambiar las variables en la página process.php a POST, use lo siguiente:

  

Usando $ post, cuando haces clic en enviar, tus variables no aparecen en la url: