Diferencia entre revisiones de «Plantilla:PHP/FormulariosConceptosGenerales»
De WikiEducator
(→Obtener datos de un formulario) |
(→Validando valores en el servidor) |
||
Línea 533: | Línea 533: | ||
<source lang=php> | <source lang=php> | ||
<!DOCTYPE html> | <!DOCTYPE html> | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
<html> | <html> | ||
<head> | <head> | ||
Línea 550: | Línea 546: | ||
<input type="text" name="nombre" id=""> | <input type="text" name="nombre" id=""> | ||
<label for="">Apellido</label> | <label for="">Apellido</label> | ||
− | <input type="text" name=" | + | <input type="text" name="apellido" id=""> |
<br /> | <br /> | ||
<label for="">Direccion</label> | <label for="">Direccion</label> | ||
Línea 603: | Línea 599: | ||
</body> | </body> | ||
</html> | </html> | ||
− | |||
</source> | </source> | ||
}} | }} | ||
+ | *Observa las diferentes forma de poder leer valores filtrando y evitando o no ataques XSS | ||
{{Plegable|hide|Posible solución: datos.php| | {{Plegable|hide|Posible solución: datos.php| | ||
<source lang=php> | <source lang=php> | ||
<?php | <?php | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
//Primero leemos las variables | //Primero leemos las variables | ||
+ | $n3 = filter_input(INPUT_POST, 'nombre'); | ||
+ | $n1 = htmlspecialchars($_POST['nombre']); | ||
+ | $n2 = strip_tags($_POST['nombre'], "<b>"); | ||
+ | |||
+ | |||
+ | $n4 = $_POST['nombre']; | ||
+ | |||
+ | |||
+ | $idiomas1 = $_POST['idiomas']; | ||
+ | var_dump($idiomas1); | ||
$nombre = filter_input(INPUT_POST, 'nombre', FILTER_SANITIZE_STRING); | $nombre = filter_input(INPUT_POST, 'nombre', FILTER_SANITIZE_STRING); | ||
+ | |||
$apellidos = filter_input(INPUT_POST, 'apellido', FILTER_SANITIZE_STRING); | $apellidos = filter_input(INPUT_POST, 'apellido', FILTER_SANITIZE_STRING); | ||
$edad = filter_input(INPUT_POST, 'edad', FILTER_VALIDATE_INT); | $edad = filter_input(INPUT_POST, 'edad', FILTER_VALIDATE_INT); | ||
$direccion = filter_input(INPUT_POST, 'direccion', FILTER_SANITIZE_STRING); | $direccion = filter_input(INPUT_POST, 'direccion', FILTER_SANITIZE_STRING); | ||
$fNac = filter_input(INPUT_POST, 'fNac', FILTER_SANITIZE_STRING); | $fNac = filter_input(INPUT_POST, 'fNac', FILTER_SANITIZE_STRING); | ||
− | $idiomas = | + | $idiomas = filter_input(INPUT_POST, 'idiomas', FILTER_DEFAULT, FILTER_REQUIRE_ARRAY); |
$genero = filter_input(INPUT_POST, 'genero'); | $genero = filter_input(INPUT_POST, 'genero'); | ||
$email = filter_input(INPUT_POST, 'email', FILTER_VALIDATE_EMAIL); | $email = filter_input(INPUT_POST, 'email', FILTER_VALIDATE_EMAIL); | ||
Línea 635: | Línea 636: | ||
//Mostramos los valores como una ficha | //Mostramos los valores como una ficha | ||
+ | ?> | ||
+ | <!doctype html> | ||
+ | <html lang="en"> | ||
+ | <head> | ||
+ | <meta charset="UTF-8"> | ||
+ | <title>Document</title> | ||
+ | </head> | ||
+ | <body> | ||
+ | <h1>Datos personales de ficha</h1> | ||
+ | <hr /> | ||
+ | <fieldset style="width:60%; background: azure"> | ||
+ | <h3>Nombre con htmlspecialchar<span style="color:red"><?= $n1 ?></span></h3> | ||
+ | <h3>Nombre con strip_tag<span style="color:red"><?= $n2 ?></span></h3> | ||
+ | <h3>Nombre <span style="color:red"><?= $nombre ?></span></h3> | ||
+ | <h3>Nombre con filter sin sanitizar<span style="color:red"><?= $n3 ?></span></h3> | ||
+ | <h3>Nombre directo de $_POSt<span style="color:red"><?= $n3 ?></span></h3> | ||
+ | <h3>Apellidos <span style="color:red"><?= $apellidos ?></span></h3> | ||
+ | <h3>Edad <span style="color:red"><?= $edad ?></span></h3> | ||
+ | <h3>Fecha de nacimiento <span style="color:red"><?= $fNac ?></span></h3> | ||
+ | <h3>Idioma <span style="color:red"><?= $mis_idiomas ?></span></h3> | ||
+ | <h3>Género <span style="color:red"><?= $genero ?></span></h3> | ||
+ | <h3>Correo <span style="color:red"><?= $email ?></span></h3> | ||
+ | <h3>Estudios <span style="color:red"><?= $estudios ?></span></h3> | ||
+ | </fieldset> | ||
+ | |||
+ | |||
+ | |||
+ | </body> | ||
+ | </html> | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
</source> | </source> | ||
Revisión de 20:58 16 oct 2019
- Por defecto los valores son pasados por GET
- Este método es fácil de ver pues se viauliza en el URL, apareciendo como parte de él separado por el signo interrogación con parejas variable=valor.
Ejemplo
| |
Tip: El name es al servidor lo mismo que el id es al cliente, con id podéis acceder a los valores de los elementos con javascript, con el name lo haremos en php
<form action="mifichero.php" method="GET"> Nombre <input type=text name = 'nombre' value='maría'> Apellido <input type=text name = 'apellido' value='Ruiz'> <br /> <input type=submit value=enviar> </form>
Dos cajas de texto y el botón submit
|
Tip: No se recomienda por temas de seguridad leer de la superglobal $_REQUEST
Nota: Las variables en $_REQUEST se proporcionan al script a través de los mecanismos de entrada GET, POST, y COOKIE y por lo tanto pueden ser manipulados por el usuario remoto y no debe confiar en el contenido...)