Docsity
Docsity

Prepara tus exámenes
Prepara tus exámenes

Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity


Consigue puntos base para descargar
Consigue puntos base para descargar

Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium


Orientación Universidad
Orientación Universidad


Formularios PHP: Introducción, GET y POST, Validación - Prof. Sanchez, Esquemas y mapas conceptuales de Comunicación

Este documento proporciona una introducción a los formularios php, explicando los métodos get y post, la validación de formularios y la seguridad. Se incluyen ejemplos de código html y php para ilustrar el funcionamiento de los formularios y la validación de datos.

Tipo: Esquemas y mapas conceptuales

2023/2024

Subido el 11/09/2024

santiago-jimenez-80
santiago-jimenez-80 🇲🇽

1 documento

1 / 7

Toggle sidebar

Esta página no es visible en la vista previa

¡No te pierdas las partes importantes!

bg1
Formularios PHP
1. Introducción
Un formulario sencillo con dos campos a rellenar y un botón para enviar
enHTMLes de la siguiente forma:
<html>
<body>
<form action="formpost.php" method="post">
Nombre: <input type="text" name="nombre"><br>
Email: <input type="text" name="email"><br>
<input type="submit" value="Enviar">
</form>
</body>
</html>
Cuando un usuario rellena los datos y hace click en enviar, los datos del
formulario se envían para ser procesados al archivoformpost.php. Los
datos se envían a través de HTTP con el métodoHTTP Post.
Una vez los datos están enformpost.phppueden mostrarse, guardarse
en una base de datos o lo que se necesite. Enformpost.phpvamos a
mostrarlos con echo:
<html>
<body>
Hola <?php echo $_POST["nombre"]; ?><br>
Tu email es: <?php echo $_POST["email"]; ?>
</body>
</html>
Lo mismo se puede conseguir con el métodoHTTP GET:
<html>
<body>
<form action="formget.php" method="get">
Nombre: <input type="text" name="nombre"><br>
Email: <input type="text" name="email"><br>
<input type="submit" value="Enviar">
</form>
</body>
</html>
Ahora el archivo donde recibimos los datos esformget.php:
<html>
<body>
Hola <?php echo $_GET["nombre"]; ?><br>
pf3
pf4
pf5

Vista previa parcial del texto

¡Descarga Formularios PHP: Introducción, GET y POST, Validación - Prof. Sanchez y más Esquemas y mapas conceptuales en PDF de Comunicación solo en Docsity!

Formularios PHP

1. Introducción

Un formulario sencillo con dos campos a rellenar y un botón para enviar

en HTML es de la siguiente forma:

< html > < body > < form action="formpost.php" method="post"> Nombre: < input type="text" name="nombre">< br > Email: < input type="text" name="email">< br > < input type="submit" value="Enviar">

Cuando un usuario rellena los datos y hace click en enviar, los datos del

formulario se envían para ser procesados al archivo formpost.php. Los

datos se envían a través de HTTP con el método HTTP Post.

Una vez los datos están en formpost.php pueden mostrarse, guardarse

en una base de datos o lo que se necesite. En formpost.php vamos a

mostrarlos con echo:

< html > < body > Hola < br > Tu email es:

Lo mismo se puede conseguir con el método HTTP GET :

< html > < body > < form action="formget.php" method="get"> Nombre: < input type="text" name="nombre">< br > Email: < input type="text" name="email">< br > < input type="submit" value="Enviar">

Ahora el archivo donde recibimos los datos es formget.php :

< html > < body > Hola < br >

Tu email es:

Estos han sido dos ejemplos muy sencillos para ver el funcionamiento

básico de un formulario. Siempre que se crean formularios hay que

tener muy en cuenta la seguridad , y para ello se utiliza la validación de

formularios.

Las superglobals $_GET y $_POST sirven para coleccionar datos de

formularios, y vamos a ver las diferencias a continuación.

2. GET y POST

$_GET y $_POST son variables superglobales que forman arrays

de keys y values , donde los keys son los nombres del formulario

(atributo " name ") y los values son los datos de entrada de los usuarios.

El hecho de que sean superglobals hace que sean accesibles desde el

script independientemente del ámbito.

$_GET es un array de variables que se pasan al script a través de

los parámetros de URL. La información que se envía es visible para

todo el mundo y tiene limitada la cantidad de información que se puede

enviar a 2000 caracteres. Las URLs con los datos enviados pueden

guardarse en marcadores, lo que puede ser útil en ciertos casos. $_GET

sólo se emplea para el envío de información reducida y no sensible.

$_POST es un array de variables que se pasan al script a través del

método HTTP POST. La información que se envía no es visible para los

demás ya que los nombres y variables van embebidas en

el body del HTTP request. No tiene límites en la cantidad de

información a enviar. Soporta datos de entrada multi-part binary a la

hora se subir archivos al servidor (lo que permite subir múltiples

archivos a la vez).

3. Tipos de elementos

Los 10 tipos de elementos más importantes para los formularios

HTML con PHP son:

< option value="formacion-profesional">Formación profesional < option value="universidad">Universidad < br > Nacionalidad: < input type="radio" name="nacionalidad" value="hispana">Hispana < input type="radio" name="nacionalidad" value="otra">Otra< br > Idiomas: < input type="checkbox" name="idiomas[]" value="español" checked="checked">Español < input type="checkbox" name="idiomas[]" value="inglés">Inglés < input type="checkbox" name="idiomas[]" value="francés">Francés < input type="checkbox" name="idiomas[]" value="aleman">Alemán< br > Email: < input type="text" name="email">< br > Sitio Web: < input type="text" name="sitioweb">< br > // Botón de enviar < input type="submit" name="submit" value="Enviar">

Vamos a ver los aspectos más característicos :

 El atributo maxlength limita el número de caracteres para una

caja de texto.

 Contraseña es del tipo password , lo que permite ocultar los

caracteres con * cuando se escribe.

 Educación es un elemento select , que permite

seleccionar options en una lista. El texto en el atributo value es

el que se enviará a través del formulario. El

atributo selected permite mostrar el seleccionado por defecto.

 Nacionalidad es del tipo radio , los elementos radio del mismo

grupo han de tener un único atributo name y sólo se puede

seleccionar uno.

 Los idiomas están en un elemento checkbox , que permite enviar

varios datos en forma de array si se indica en el

atributo name con corchetes. Se puede añadir un

atributo checked como seleccionado por defecto.

 En action se ha puesto _. $_SERVER["PHP_SELF"] es una superglobal que devuelve el

nombre del archivo en el que se encuentra el formulario, lo que

hace que los datos se envíen al mismo archivo, en lugar de

llevarlos a otro archivo para tratarlos. Si se emplea esta forma de

indicar el archivo para action , es necesario usar la

función htmlespecialchars() , que convierte caracteres especiales

en entidades HTML previniendo posibles ataques Cross-site

Scripting.

En este ejemplo todas las acciones de validar, enviar y recibir datos se

hacen en el mismo archivo form.php.

Primero vamos a crear un filtrado común para todos los campos con

la función filtrado() :

function filtrado($datos){ $datos = trim($datos); // Elimina espacios antes y después de los datos $datos = stripslashes($datos); // Elimina backslashes
$datos = htmlspecialchars($datos); // Traduce caracteres especiales en entidades HTML return $datos; }

Esta función se aplicaría a cada campo a la hora de recibir los datos:

if(isset($_POST["submit"]) && $_SERVER["REQUEST_METHOD"] == "POST"){ $nombre = filtrado($_POST["nombre"]); $password = filtrado($_POST["password"]); $educacion = filtrado($_POST["educacion"]); $nacionalidad = filtrado($_POST["nacionalidad"]); // Utilizamos implode para pasar el array a string $idiomas = filtrado(implode(", ", $_POST["idiomas"])); $email = filtrado($_POST["email"]); $sitioweb = filtrado($_POST["sitioweb"]); }

Para aceptar los datos se ha puesto _isset($ POST["submit"]) , que crea

la key submit cuando se hace click en el botón, y

_$_SERVER["REQUEST METHOD"] == "post" , que especifica que

el método request ha de ser POST. Se puede usar una de las dos

formas o las dos a la vez.

$email = filtrado($_POST["email"]); $sitioweb = filtrado($_POST["sitioweb"]); } }

El array de errores $errores guarda cada uno de los errores que se

registran para luego mostrarlos. Si el array tiene algún elemento, el

formulario no será aceptado. Para mostrarlos podemos hacerlo así:

< ul > $error "; } } ?>