SlideShare una empresa de Scribd logo
1 de 19
Descargar para leer sin conexión
J.J. Taboada León
Unidad 2
2.6 Técnicas para generar
formularios, validarlos y
procesarlos en el mismo
documento web.
www.docencia.taboadaleon.es
23/11/2016Implantación de
Aplicaciones
WEB.FORMATOS DE
PRESENTACIÓN. JJ
Taboada
J.J. Taboada León
Técnica para validar formularios (I)
//Estructura para validar un formulario
if (isset($_POST['_submit_check'])) {
if (valida_form()) {
procesa_form();
} else {
muestra_form(); }
} else {
muestra_form();
}
23/11/2016Implantación de
Aplicaciones
WEB.FORMATOS DE
PRESENTACIÓN. JJ
Taboada
J.J. Taboada León
Técnica para validar formularios (II)
// Comprobar los datos del formulario
• function valida_form() {
//¿tiene el nombre menos de tres caracteres?
if (strlen($_POST[‘nombre']) < 3) {
return false; }
else { return true; }}
//Procesar los datos del formulario
• function procesa_form() {
print “Hola, ". $_POST[‘nombre'];
}
23/11/2016Implantación de
Aplicaciones
WEB.FORMATOS DE
PRESENTACIÓN. JJ
Taboada
J.J. Taboada León
Técnica para validar formularios (III)
// Muestra el formulario
function muestra_form() {
print<<<_HTML_
<form method="POST" action="$_SERVER[PHP_SELF]">
Nombre: <input type="text" name=“nombre"><br/>
<input type="submit" value=“Hola">
<input type="hidden" name="_submit_check"
value="1">
</form>
_HTML_;
}
23/11/2016Implantación de
Aplicaciones
WEB.FORMATOS DE
PRESENTACIÓN. JJ
Taboada
J.J. Taboada León
Técnica para Validar datos (I) con
mensaje de error
// Comprobar los datos del formulario
function valida_form() {
// Empezar con un array vacío de mensajes de error
$errors = array();
// Añadir un mensaje de error si nombre corto
if (strlen($_POST['my_name']) < 3) {
$errors[] = ‘tu nombre debe tener
almenos 3 letras.’;
}
// devolver el array(posiblemente vacío)de mensajes de error
return $errors;
}
23/11/2016Implantación de
Aplicaciones
WEB.FORMATOS DE
PRESENTACIÓN. JJ
Taboada
J.J. Taboada León
Técnica para Validar datos (II) con
mensaje de error
// Muestra el formulario
function muestra_form($errores=‘’) {
if ($errores){
print ‘Por favor corrija errores: <ul> <li>’;
print implode(’</li><li>’, $errores);
print ‘</li></ul>;
}
print<<<_HTML_
<form method="POST" action="$_SERVER[PHP_SELF]">
Nombre: <input type="text" name=“nombre"><br/>
<input type="submit" value=“Hola">
<input type="hidden" name="_submit_check" value="1">
</form>
_HTML_;
}
23/11/2016Implantación de
Aplicaciones
WEB.FORMATOS DE
PRESENTACIÓN. JJ
Taboada
J.J. Taboada León
Técnica para validar formularios (III)
con mensaje de error
//Estructura para validar un formulario
if (isset($_POST['_submit_check'])) {
if ($error=valida_form()) {
muestra_form($error);
} else {
procesa_form();}
} else {
muestra_form();
}
23/11/2016Implantación de
Aplicaciones
WEB.FORMATOS DE
PRESENTACIÓN. JJ
Taboada
J.J. Taboada León
Técnica para Validar datos (I)
• //Elementos obligatorios
• //comprobar un rango de números
23/11/2016Implantación de
Aplicaciones
WEB.FORMATOS DE
PRESENTACIÓN. JJ
Taboada
if (strlen(trim($_POST['email'])) == 0) {
$errors[] = “Debes entrar un dirección de correos.";
}
if ($_POST[‘edad'] != strval(intval($_POST[‘edad']))) {
$errors[] = “La edad debe ser un número.";
}elseif (($_POST[‘edad'] < 18) || ($_POST[‘edad'] > 65)) {
$errors[] = “La edad debe estar entre 18 años y 65 años.";
}
J.J. Taboada León
Técnica para Validar datos (II)
23/11/2016
//Menús <select>
$sweets = array('Sesame Seed Puff','Coconut Milk Gelatin
Square‘,'Brown Sugar Cake','Sweet Rice and Meat');
// Display the form
function muestrta_form($errores=‘’) {
……
print<<<_HTML_
<form method="post" action="$_SERVER[PHP_SELF]">
Your Order: <select name="order">
_HTML_;
foreach ($GLOBALS['sweets'] as $choice) {
print
"<option>$choice</option>n";}print<<<_HTML_</select><br/><input
type="submit" value="Order"><input type="hidden"
name="_submit_check" value="1">
</form>
_HTML_;}
En validar_form()
if (!in_array($_POST[‘order’],
$GLOBALS[`sweets`])){$errores[]=‘por
favor elije un item válido.`; }
J.J. Taboada León
Actividades
• Modificar la actividad formulario3 del cuaderno
de actividades formularios, para que se validen
los datos introducidos y se presente los
oportunos mensajes de errores aplicando las
técnicas aquí propuestas.
23/11/2016Implantación de
Aplicaciones
WEB.FORMATOS DE
PRESENTACIÓN. JJ
Taboada
J.J. Taboada León
Validar con Expresiones regulares
Juan José
Taboada León
2011/2012
Horas de Libre
Configuración.
Formularios JavaScript
Son patrones (cadenas) que permiten buscar
coincidencias con combinaciones de caracteres dentro de
otras cadenas de texto
El objetivo es crear una cadena especial para hacer
búsqueda en otra cadena. Si la expresión regular encaja (match) en la
cadena de búsqueda, la operación resultas exitosa.
Ejemplo, la expresión regular /ejemplo/ encontrará la subcadena
"ejemplo" dentro de la cadena "Esto es un ejemplo."
Se utiliza con la fución preg_match()
J.J. Taboada León
Ejemplos
<?php
//Demilitador 'i' para no diferenciar mayus y minus
if (preg_match("/PRUEBA/i", "esto es una prueba"))
{
echo "HAY COINCIDENCIA";
}else
{
echo "NO HAY COINCIDENCIA";
}
?>
23/11/2016Implantación de
Aplicaciones
WEB.FORMATOS DE
PRESENTACIÓN. JJ
Taboada
//buscando al menos 2 numeros seguidos en la cadena
if (preg_match('/[0-9]{2}/',”sanSeba22@email.com"))
{
echo "HAY COINCIDENCIA";
} else
{
echo "NO HAY COINCIDENCIA";
}
J.J. Taboada León
$entero preg_match ($exp_regular , $cadena [, $coincidencias[, $flags [, $comienzo ]]])
SINTAXIS PHP PREG_MATCH()
23/11/2016Implantación de
Aplicaciones
WEB.FORMATOS DE
PRESENTACIÓN. JJ
Taboada
$entero: El valor devuelto será ’1′ si hay coincidencia, ’0′ si no la hay, y puede devolver
FALSE si hay algún error en la función.
$exp_regular: Expresión regular que usaremos para la comparación.
$cadena: Cadena de texto comparada.
$coincidencias: Es un array con información de las partes de la cadena que coinciden con
la expresión regular.
$flags: Si se pasa el parametro ‘PREG_OFFSET_CAPTURE’ en el array de coincidencias
también vendrá el índice de comienzo de cada coincidencia.
$comienzo: Posición de comienzo dentro de la $cadena de la comparación.
J.J. Taboada León
Expresiones regulares
(Algunos caracteres especiales I)
Metacaracteres
• . Match con cualquier carácter
• ^ Match al principio del string
• $ Match al final del string
• s Match con cualquier espacio en blanco
• d Match con cualquier dígito
• D Match con cualquier carácter que no sea un dígito
• w Match con cualquier carácter que pueda ser parte de
una palabra (letra, número, guión bajo)
• W Match con cualquier carácter que NO pueda ser
parte de una palabra (letra, número, guión bajo)
• A Inicio de un string.
• z Final de un string.
J.J. Taboada León
Expresiones regulares
(Algunos caracteres especiales II)
Cuantificadores
• * el carácter puede aparecer cero o mas veces.
• + el carácter puede aparecer una o mas veces.
• ? el carácter puede aparecer cero o una vez.
• {n} el carácter aparece exactamente n veces.
• {n,}el carácter aparece n o más veces.
• {n,m} el carácter puede aparecer entre n y m veces.
• Como parte de la notación, siempre encerramos las
expresiones regulares entre /, llaves ({}) o #. Por
ejemplo, la expresión /ab?c/ hace match con ac y abc. La
expresión regular /ab{1,3}c/ hace match con abc, abbcy
abbbc.
J.J. Taboada León
Expresiones regulares
(Algunos caracteres especiales III)
Agrupadores
• [] permiten agrupar creando rangos, por ejemplo /ab[0-5]+c/ hará
match con cualquier string que contenga ab, una o más veces un número
entre 0 y 5, y finalmente una c. Por ejemplo: ab12c.
• () Nos permiten crear sub-expresiones, expresiones regulares contenidas
dentro de otras: /a(bc.)+e/. Tiene un uso especial en formas como (…), que
permite capturar todo lo que encierren los paréntesis, y (a|b) que hace
match con a o b
• Modificadores
• Permiten cambiar el modo en que se ejecute la expresión regular. Se
agregan después del delimitador de cierre.
• i Coincidir indistintamente entre mayúsculas y minúsculas.
• m Match multilínea.
• s El metacaracter . hará match también con el caracter de cambio de
línea.
• u Hacer los matches en modo UTF8
• x Ignorar espacios.
J.J. Taboada León
Ejemplo: Validar un email
23/11/2016Implantación de
Aplicaciones
WEB.FORMATOS DE
PRESENTACIÓN. JJ
Taboada
function verificar_email($email) {
if(preg_match("/^([a-zA-Z0-9])+([a-zA-Z0-9._-])*@([a-zA-Z0-9_-])+([a-zA-
Z0-9._-]+)+$/",$email))
{ return true; }
return false;
}
J.J. Taboada León
Ejemplo: Verificar si una contraseña es
segura
23/11/2016Implantación de
Aplicaciones
WEB.FORMATOS DE
PRESENTACIÓN. JJ
Taboada
function verificar_password_strenght($password)
{ if (preg_match("/^.*(?=.{8,})(?=.*d)(?=.*[a-z])(?=.*[A-Z]).*$/",
$password))
echo "Su password es seguro.";
else
echo "Su password no es seguro."; }
J.J. Taboada León
Unidad 2
2.6 VALIDAR FORMULARIOS
FIN DE LA PRESENTACIÓN
GRACIAS
23/11/2016Implantación de
Aplicaciones
WEB.FORMATOS DE
PRESENTACIÓN. JJ
Taboada

Más contenido relacionado

La actualidad más candente

áLgebra relacional
áLgebra relacionaláLgebra relacional
áLgebra relacionalhampacomun
 
Php y MySQL
Php y MySQLPhp y MySQL
Php y MySQLKaris
 
Curso php dia2
Curso php dia2Curso php dia2
Curso php dia2cognos_uie
 
Sentencias SQL Update y Delete
Sentencias SQL Update y DeleteSentencias SQL Update y Delete
Sentencias SQL Update y DeleteEmerson Garay
 
Base datos mysql y visual basic
Base datos mysql y visual basicBase datos mysql y visual basic
Base datos mysql y visual basicRafael Tobar Jame
 
Mantener valores en los campos de texto de un formulario PHP
Mantener valores en los campos de texto de un formulario PHPMantener valores en los campos de texto de un formulario PHP
Mantener valores en los campos de texto de un formulario PHPOVAWEB
 
Informe grupal f_arinango_ cuenca
Informe grupal f_arinango_ cuencaInforme grupal f_arinango_ cuenca
Informe grupal f_arinango_ cuencapaulcuenca9
 
Php funciones en detalle
Php   funciones en detallePhp   funciones en detalle
Php funciones en detalleDev 010101
 
Elementos del Hardware y Software
Elementos del Hardware y SoftwareElementos del Hardware y Software
Elementos del Hardware y Softwarecarlosadrianev
 
PHP Tema 2 - Lenguaje PHP básico
PHP Tema 2 - Lenguaje PHP básicoPHP Tema 2 - Lenguaje PHP básico
PHP Tema 2 - Lenguaje PHP básicoSpacetoshare
 
Guía práctica desarrollo web con php 5 y my sql
Guía práctica desarrollo web con php 5 y my sqlGuía práctica desarrollo web con php 5 y my sql
Guía práctica desarrollo web con php 5 y my sqlJesus Machicado Gomez
 

La actualidad más candente (20)

áLgebra relacional
áLgebra relacionaláLgebra relacional
áLgebra relacional
 
Php
PhpPhp
Php
 
Php
PhpPhp
Php
 
32773 php-basico
32773 php-basico32773 php-basico
32773 php-basico
 
Inf 17 (chatbot)
Inf 17 (chatbot)Inf 17 (chatbot)
Inf 17 (chatbot)
 
Php y MySQL
Php y MySQLPhp y MySQL
Php y MySQL
 
Curso php dia2
Curso php dia2Curso php dia2
Curso php dia2
 
I2 u4
I2 u4I2 u4
I2 u4
 
Sentencias SQL Update y Delete
Sentencias SQL Update y DeleteSentencias SQL Update y Delete
Sentencias SQL Update y Delete
 
Base datos mysql y visual basic
Base datos mysql y visual basicBase datos mysql y visual basic
Base datos mysql y visual basic
 
Mantener valores en los campos de texto de un formulario PHP
Mantener valores en los campos de texto de un formulario PHPMantener valores en los campos de texto de un formulario PHP
Mantener valores en los campos de texto de un formulario PHP
 
Codigo Php
Codigo PhpCodigo Php
Codigo Php
 
Informe grupal f_arinango_ cuenca
Informe grupal f_arinango_ cuencaInforme grupal f_arinango_ cuenca
Informe grupal f_arinango_ cuenca
 
Php funciones en detalle
Php   funciones en detallePhp   funciones en detalle
Php funciones en detalle
 
Tema2[php]
Tema2[php]Tema2[php]
Tema2[php]
 
Elementos del Hardware y Software
Elementos del Hardware y SoftwareElementos del Hardware y Software
Elementos del Hardware y Software
 
PHP Y MYSQL
PHP Y MYSQLPHP Y MYSQL
PHP Y MYSQL
 
PHP Tema 2 - Lenguaje PHP básico
PHP Tema 2 - Lenguaje PHP básicoPHP Tema 2 - Lenguaje PHP básico
PHP Tema 2 - Lenguaje PHP básico
 
Guía práctica desarrollo web con php 5 y my sql
Guía práctica desarrollo web con php 5 y my sqlGuía práctica desarrollo web con php 5 y my sql
Guía práctica desarrollo web con php 5 y my sql
 
Zen AJAX - Programador PHP
Zen AJAX - Programador PHPZen AJAX - Programador PHP
Zen AJAX - Programador PHP
 

Destacado (7)

2 2 estructuras_decontrolphp
2 2 estructuras_decontrolphp2 2 estructuras_decontrolphp
2 2 estructuras_decontrolphp
 
2 7 ficheros_php
2 7 ficheros_php2 7 ficheros_php
2 7 ficheros_php
 
2 5 funciones_php
2 5 funciones_php2 5 funciones_php
2 5 funciones_php
 
2 1 sintaxis_php
2 1 sintaxis_php2 1 sintaxis_php
2 1 sintaxis_php
 
Presentación 2018-2019
Presentación 2018-2019Presentación 2018-2019
Presentación 2018-2019
 
2 8 cookiesy_sesionesphp
2 8 cookiesy_sesionesphp2 8 cookiesy_sesionesphp
2 8 cookiesy_sesionesphp
 
2 4 formularios_php
2 4 formularios_php2 4 formularios_php
2 4 formularios_php
 

Similar a 2 6 validar_formularios

SQL-DDL
SQL-DDLSQL-DDL
SQL-DDLbdatos
 
Primeros Pasos Aplicacion Java conexión BD Mysql
Primeros Pasos Aplicacion Java conexión BD MysqlPrimeros Pasos Aplicacion Java conexión BD Mysql
Primeros Pasos Aplicacion Java conexión BD MysqlEmerson Garay
 
Guia N5 Proyectos Web Consultas Php Y My Sql
Guia N5   Proyectos Web   Consultas Php Y My SqlGuia N5   Proyectos Web   Consultas Php Y My Sql
Guia N5 Proyectos Web Consultas Php Y My SqlJose Ponce
 
UTPL-PROGRAMACIÓN AVANZADA-II-BIMESTRE-(OCTUBRE 2011-FEBRERO 2012)
UTPL-PROGRAMACIÓN AVANZADA-II-BIMESTRE-(OCTUBRE 2011-FEBRERO 2012)UTPL-PROGRAMACIÓN AVANZADA-II-BIMESTRE-(OCTUBRE 2011-FEBRERO 2012)
UTPL-PROGRAMACIÓN AVANZADA-II-BIMESTRE-(OCTUBRE 2011-FEBRERO 2012)Videoconferencias UTPL
 
Ejemplos de php_mysql
Ejemplos de php_mysqlEjemplos de php_mysql
Ejemplos de php_mysqlI LG
 
Bases de Datos en Java - Intro a JDBC
Bases de Datos en Java - Intro a JDBCBases de Datos en Java - Intro a JDBC
Bases de Datos en Java - Intro a JDBCCarlos Hernando
 
Estructura de datos manipulación de listas y tablas
Estructura de datos manipulación de listas y tablas Estructura de datos manipulación de listas y tablas
Estructura de datos manipulación de listas y tablas Pamelaguibkdoe
 
Ejerciciocompletocolegio 100508161155-phpapp02
Ejerciciocompletocolegio 100508161155-phpapp02Ejerciciocompletocolegio 100508161155-phpapp02
Ejerciciocompletocolegio 100508161155-phpapp02marlon ponce
 
Objeto relacional bases datos 2
Objeto relacional bases datos 2Objeto relacional bases datos 2
Objeto relacional bases datos 2Velmuz Buzz
 
Proyecto De Aplicacion A La Bases Datos
Proyecto De Aplicacion A La Bases DatosProyecto De Aplicacion A La Bases Datos
Proyecto De Aplicacion A La Bases DatosAndreitap de Granda
 
Diseño conceptual Easy Drive School of Motoring
Diseño conceptual Easy Drive School of MotoringDiseño conceptual Easy Drive School of Motoring
Diseño conceptual Easy Drive School of MotoringssharLudena
 
Diseño Físico EasyDrive School of Motoring
Diseño Físico EasyDrive School of MotoringDiseño Físico EasyDrive School of Motoring
Diseño Físico EasyDrive School of Motoringjosmal 7
 
Estructura de datos manipulación de listas y tablas fundamentos
Estructura de datos manipulación de listas y tablas fundamentos Estructura de datos manipulación de listas y tablas fundamentos
Estructura de datos manipulación de listas y tablas fundamentos Pamelaguibkdoe
 
04-SQLBuenaPresentaciónyConceptos.pdf
04-SQLBuenaPresentaciónyConceptos.pdf04-SQLBuenaPresentaciónyConceptos.pdf
04-SQLBuenaPresentaciónyConceptos.pdfssuser78e8eb
 

Similar a 2 6 validar_formularios (20)

SQL-DDL
SQL-DDLSQL-DDL
SQL-DDL
 
Los lenguajes
Los lenguajesLos lenguajes
Los lenguajes
 
Primeros Pasos Aplicacion Java conexión BD Mysql
Primeros Pasos Aplicacion Java conexión BD MysqlPrimeros Pasos Aplicacion Java conexión BD Mysql
Primeros Pasos Aplicacion Java conexión BD Mysql
 
Guia N5 Proyectos Web Consultas Php Y My Sql
Guia N5   Proyectos Web   Consultas Php Y My SqlGuia N5   Proyectos Web   Consultas Php Y My Sql
Guia N5 Proyectos Web Consultas Php Y My Sql
 
UTPL-PROGRAMACIÓN AVANZADA-II-BIMESTRE-(OCTUBRE 2011-FEBRERO 2012)
UTPL-PROGRAMACIÓN AVANZADA-II-BIMESTRE-(OCTUBRE 2011-FEBRERO 2012)UTPL-PROGRAMACIÓN AVANZADA-II-BIMESTRE-(OCTUBRE 2011-FEBRERO 2012)
UTPL-PROGRAMACIÓN AVANZADA-II-BIMESTRE-(OCTUBRE 2011-FEBRERO 2012)
 
Ejemplos de php_mysql
Ejemplos de php_mysqlEjemplos de php_mysql
Ejemplos de php_mysql
 
Algoritmos1
Algoritmos1Algoritmos1
Algoritmos1
 
Bases de Datos en Java - Intro a JDBC
Bases de Datos en Java - Intro a JDBCBases de Datos en Java - Intro a JDBC
Bases de Datos en Java - Intro a JDBC
 
Tutorial bd y php
Tutorial bd y phpTutorial bd y php
Tutorial bd y php
 
Estructura de datos manipulación de listas y tablas
Estructura de datos manipulación de listas y tablas Estructura de datos manipulación de listas y tablas
Estructura de datos manipulación de listas y tablas
 
fp_p4.pdf
fp_p4.pdffp_p4.pdf
fp_p4.pdf
 
Ejerciciocompletocolegio 100508161155-phpapp02
Ejerciciocompletocolegio 100508161155-phpapp02Ejerciciocompletocolegio 100508161155-phpapp02
Ejerciciocompletocolegio 100508161155-phpapp02
 
Objeto relacional bases datos 2
Objeto relacional bases datos 2Objeto relacional bases datos 2
Objeto relacional bases datos 2
 
Proyecto De Aplicacion A La Bases Datos
Proyecto De Aplicacion A La Bases DatosProyecto De Aplicacion A La Bases Datos
Proyecto De Aplicacion A La Bases Datos
 
Diseño conceptual Easy Drive School of Motoring
Diseño conceptual Easy Drive School of MotoringDiseño conceptual Easy Drive School of Motoring
Diseño conceptual Easy Drive School of Motoring
 
Diseño Físico EasyDrive School of Motoring
Diseño Físico EasyDrive School of MotoringDiseño Físico EasyDrive School of Motoring
Diseño Físico EasyDrive School of Motoring
 
Estructura de datos manipulación de listas y tablas fundamentos
Estructura de datos manipulación de listas y tablas fundamentos Estructura de datos manipulación de listas y tablas fundamentos
Estructura de datos manipulación de listas y tablas fundamentos
 
04-SQL.pdf
04-SQL.pdf04-SQL.pdf
04-SQL.pdf
 
04-SQLBuenaPresentaciónyConceptos.pdf
04-SQLBuenaPresentaciónyConceptos.pdf04-SQLBuenaPresentaciónyConceptos.pdf
04-SQLBuenaPresentaciónyConceptos.pdf
 
Excel
ExcelExcel
Excel
 

Más de Juan José Taboada León

Más de Juan José Taboada León (7)

U7 1 xslt-curso2018-19
U7 1 xslt-curso2018-19U7 1 xslt-curso2018-19
U7 1 xslt-curso2018-19
 
Presentación módulo Seguridad y Alta Disponibilidad curso 2018/2019
Presentación módulo Seguridad y Alta Disponibilidad curso 2018/2019Presentación módulo Seguridad y Alta Disponibilidad curso 2018/2019
Presentación módulo Seguridad y Alta Disponibilidad curso 2018/2019
 
U7 1 xslt-curso2017-18
U7 1 xslt-curso2017-18U7 1 xslt-curso2017-18
U7 1 xslt-curso2017-18
 
Presentación
PresentaciónPresentación
Presentación
 
Presentación tic2 2017
Presentación tic2 2017Presentación tic2 2017
Presentación tic2 2017
 
Unidad 10: Sistemas de Gestión de la Información
Unidad 10: Sistemas de Gestión de la InformaciónUnidad 10: Sistemas de Gestión de la Información
Unidad 10: Sistemas de Gestión de la Información
 
XSLT y XPATH
XSLT y XPATHXSLT y XPATH
XSLT y XPATH
 

Último

OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptx
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptxOLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptx
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptxjosetrinidadchavez
 
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptx
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptxSINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptx
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptxlclcarmen
 
DE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.ppt
DE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.pptDE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.ppt
DE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.pptELENA GALLARDO PAÚLS
 
Movimientos Precursores de La Independencia en Venezuela
Movimientos Precursores de La Independencia en VenezuelaMovimientos Precursores de La Independencia en Venezuela
Movimientos Precursores de La Independencia en Venezuelacocuyelquemao
 
programa dia de las madres 10 de mayo para evento
programa dia de las madres 10 de mayo  para eventoprograma dia de las madres 10 de mayo  para evento
programa dia de las madres 10 de mayo para eventoDiegoMtsS
 
codigos HTML para blogs y paginas web Karina
codigos HTML para blogs y paginas web Karinacodigos HTML para blogs y paginas web Karina
codigos HTML para blogs y paginas web Karinavergarakarina022
 
Lecciones 04 Esc. Sabática. Defendamos la verdad
Lecciones 04 Esc. Sabática. Defendamos la verdadLecciones 04 Esc. Sabática. Defendamos la verdad
Lecciones 04 Esc. Sabática. Defendamos la verdadAlejandrino Halire Ccahuana
 
RETO MES DE ABRIL .............................docx
RETO MES DE ABRIL .............................docxRETO MES DE ABRIL .............................docx
RETO MES DE ABRIL .............................docxAna Fernandez
 
Plan Año Escolar Año Escolar 2023-2024. MPPE
Plan Año Escolar Año Escolar 2023-2024. MPPEPlan Año Escolar Año Escolar 2023-2024. MPPE
Plan Año Escolar Año Escolar 2023-2024. MPPELaura Chacón
 
Marketing y servicios 2ºBTP Cocina DGETP
Marketing y servicios 2ºBTP Cocina DGETPMarketing y servicios 2ºBTP Cocina DGETP
Marketing y servicios 2ºBTP Cocina DGETPANEP - DETP
 
Unidad II Doctrina de la Iglesia 1 parte
Unidad II Doctrina de la Iglesia 1 parteUnidad II Doctrina de la Iglesia 1 parte
Unidad II Doctrina de la Iglesia 1 parteJuan Hernandez
 
FICHA DE MONITOREO Y ACOMPAÑAMIENTO 2024 MINEDU
FICHA DE MONITOREO Y ACOMPAÑAMIENTO  2024 MINEDUFICHA DE MONITOREO Y ACOMPAÑAMIENTO  2024 MINEDU
FICHA DE MONITOREO Y ACOMPAÑAMIENTO 2024 MINEDUgustavorojas179704
 
Metabolismo 3: Anabolismo y Fotosíntesis 2024
Metabolismo 3: Anabolismo y Fotosíntesis 2024Metabolismo 3: Anabolismo y Fotosíntesis 2024
Metabolismo 3: Anabolismo y Fotosíntesis 2024IES Vicent Andres Estelles
 
5° SEM29 CRONOGRAMA PLANEACIÓN DOCENTE DARUKEL 23-24.pdf
5° SEM29 CRONOGRAMA PLANEACIÓN DOCENTE DARUKEL 23-24.pdf5° SEM29 CRONOGRAMA PLANEACIÓN DOCENTE DARUKEL 23-24.pdf
5° SEM29 CRONOGRAMA PLANEACIÓN DOCENTE DARUKEL 23-24.pdfOswaldoGonzalezCruz
 
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARO
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARONARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARO
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFAROJosé Luis Palma
 

Último (20)

OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptx
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptxOLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptx
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptx
 
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptx
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptxSINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptx
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptx
 
DE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.ppt
DE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.pptDE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.ppt
DE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.ppt
 
Earth Day Everyday 2024 54th anniversary
Earth Day Everyday 2024 54th anniversaryEarth Day Everyday 2024 54th anniversary
Earth Day Everyday 2024 54th anniversary
 
Movimientos Precursores de La Independencia en Venezuela
Movimientos Precursores de La Independencia en VenezuelaMovimientos Precursores de La Independencia en Venezuela
Movimientos Precursores de La Independencia en Venezuela
 
programa dia de las madres 10 de mayo para evento
programa dia de las madres 10 de mayo  para eventoprograma dia de las madres 10 de mayo  para evento
programa dia de las madres 10 de mayo para evento
 
codigos HTML para blogs y paginas web Karina
codigos HTML para blogs y paginas web Karinacodigos HTML para blogs y paginas web Karina
codigos HTML para blogs y paginas web Karina
 
Lecciones 04 Esc. Sabática. Defendamos la verdad
Lecciones 04 Esc. Sabática. Defendamos la verdadLecciones 04 Esc. Sabática. Defendamos la verdad
Lecciones 04 Esc. Sabática. Defendamos la verdad
 
RETO MES DE ABRIL .............................docx
RETO MES DE ABRIL .............................docxRETO MES DE ABRIL .............................docx
RETO MES DE ABRIL .............................docx
 
Plan Año Escolar Año Escolar 2023-2024. MPPE
Plan Año Escolar Año Escolar 2023-2024. MPPEPlan Año Escolar Año Escolar 2023-2024. MPPE
Plan Año Escolar Año Escolar 2023-2024. MPPE
 
Marketing y servicios 2ºBTP Cocina DGETP
Marketing y servicios 2ºBTP Cocina DGETPMarketing y servicios 2ºBTP Cocina DGETP
Marketing y servicios 2ºBTP Cocina DGETP
 
Power Point: "Defendamos la verdad".pptx
Power Point: "Defendamos la verdad".pptxPower Point: "Defendamos la verdad".pptx
Power Point: "Defendamos la verdad".pptx
 
Unidad II Doctrina de la Iglesia 1 parte
Unidad II Doctrina de la Iglesia 1 parteUnidad II Doctrina de la Iglesia 1 parte
Unidad II Doctrina de la Iglesia 1 parte
 
FICHA DE MONITOREO Y ACOMPAÑAMIENTO 2024 MINEDU
FICHA DE MONITOREO Y ACOMPAÑAMIENTO  2024 MINEDUFICHA DE MONITOREO Y ACOMPAÑAMIENTO  2024 MINEDU
FICHA DE MONITOREO Y ACOMPAÑAMIENTO 2024 MINEDU
 
Repaso Pruebas CRECE PR 2024. Ciencia General
Repaso Pruebas CRECE PR 2024. Ciencia GeneralRepaso Pruebas CRECE PR 2024. Ciencia General
Repaso Pruebas CRECE PR 2024. Ciencia General
 
Metabolismo 3: Anabolismo y Fotosíntesis 2024
Metabolismo 3: Anabolismo y Fotosíntesis 2024Metabolismo 3: Anabolismo y Fotosíntesis 2024
Metabolismo 3: Anabolismo y Fotosíntesis 2024
 
Defendamos la verdad. La defensa es importante.
Defendamos la verdad. La defensa es importante.Defendamos la verdad. La defensa es importante.
Defendamos la verdad. La defensa es importante.
 
5° SEM29 CRONOGRAMA PLANEACIÓN DOCENTE DARUKEL 23-24.pdf
5° SEM29 CRONOGRAMA PLANEACIÓN DOCENTE DARUKEL 23-24.pdf5° SEM29 CRONOGRAMA PLANEACIÓN DOCENTE DARUKEL 23-24.pdf
5° SEM29 CRONOGRAMA PLANEACIÓN DOCENTE DARUKEL 23-24.pdf
 
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARO
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARONARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARO
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARO
 
La Trampa De La Felicidad. Russ-Harris.pdf
La Trampa De La Felicidad. Russ-Harris.pdfLa Trampa De La Felicidad. Russ-Harris.pdf
La Trampa De La Felicidad. Russ-Harris.pdf
 

2 6 validar_formularios

  • 1. J.J. Taboada León Unidad 2 2.6 Técnicas para generar formularios, validarlos y procesarlos en el mismo documento web. www.docencia.taboadaleon.es 23/11/2016Implantación de Aplicaciones WEB.FORMATOS DE PRESENTACIÓN. JJ Taboada
  • 2. J.J. Taboada León Técnica para validar formularios (I) //Estructura para validar un formulario if (isset($_POST['_submit_check'])) { if (valida_form()) { procesa_form(); } else { muestra_form(); } } else { muestra_form(); } 23/11/2016Implantación de Aplicaciones WEB.FORMATOS DE PRESENTACIÓN. JJ Taboada
  • 3. J.J. Taboada León Técnica para validar formularios (II) // Comprobar los datos del formulario • function valida_form() { //¿tiene el nombre menos de tres caracteres? if (strlen($_POST[‘nombre']) < 3) { return false; } else { return true; }} //Procesar los datos del formulario • function procesa_form() { print “Hola, ". $_POST[‘nombre']; } 23/11/2016Implantación de Aplicaciones WEB.FORMATOS DE PRESENTACIÓN. JJ Taboada
  • 4. J.J. Taboada León Técnica para validar formularios (III) // Muestra el formulario function muestra_form() { print<<<_HTML_ <form method="POST" action="$_SERVER[PHP_SELF]"> Nombre: <input type="text" name=“nombre"><br/> <input type="submit" value=“Hola"> <input type="hidden" name="_submit_check" value="1"> </form> _HTML_; } 23/11/2016Implantación de Aplicaciones WEB.FORMATOS DE PRESENTACIÓN. JJ Taboada
  • 5. J.J. Taboada León Técnica para Validar datos (I) con mensaje de error // Comprobar los datos del formulario function valida_form() { // Empezar con un array vacío de mensajes de error $errors = array(); // Añadir un mensaje de error si nombre corto if (strlen($_POST['my_name']) < 3) { $errors[] = ‘tu nombre debe tener almenos 3 letras.’; } // devolver el array(posiblemente vacío)de mensajes de error return $errors; } 23/11/2016Implantación de Aplicaciones WEB.FORMATOS DE PRESENTACIÓN. JJ Taboada
  • 6. J.J. Taboada León Técnica para Validar datos (II) con mensaje de error // Muestra el formulario function muestra_form($errores=‘’) { if ($errores){ print ‘Por favor corrija errores: <ul> <li>’; print implode(’</li><li>’, $errores); print ‘</li></ul>; } print<<<_HTML_ <form method="POST" action="$_SERVER[PHP_SELF]"> Nombre: <input type="text" name=“nombre"><br/> <input type="submit" value=“Hola"> <input type="hidden" name="_submit_check" value="1"> </form> _HTML_; } 23/11/2016Implantación de Aplicaciones WEB.FORMATOS DE PRESENTACIÓN. JJ Taboada
  • 7. J.J. Taboada León Técnica para validar formularios (III) con mensaje de error //Estructura para validar un formulario if (isset($_POST['_submit_check'])) { if ($error=valida_form()) { muestra_form($error); } else { procesa_form();} } else { muestra_form(); } 23/11/2016Implantación de Aplicaciones WEB.FORMATOS DE PRESENTACIÓN. JJ Taboada
  • 8. J.J. Taboada León Técnica para Validar datos (I) • //Elementos obligatorios • //comprobar un rango de números 23/11/2016Implantación de Aplicaciones WEB.FORMATOS DE PRESENTACIÓN. JJ Taboada if (strlen(trim($_POST['email'])) == 0) { $errors[] = “Debes entrar un dirección de correos."; } if ($_POST[‘edad'] != strval(intval($_POST[‘edad']))) { $errors[] = “La edad debe ser un número."; }elseif (($_POST[‘edad'] < 18) || ($_POST[‘edad'] > 65)) { $errors[] = “La edad debe estar entre 18 años y 65 años."; }
  • 9. J.J. Taboada León Técnica para Validar datos (II) 23/11/2016 //Menús <select> $sweets = array('Sesame Seed Puff','Coconut Milk Gelatin Square‘,'Brown Sugar Cake','Sweet Rice and Meat'); // Display the form function muestrta_form($errores=‘’) { …… print<<<_HTML_ <form method="post" action="$_SERVER[PHP_SELF]"> Your Order: <select name="order"> _HTML_; foreach ($GLOBALS['sweets'] as $choice) { print "<option>$choice</option>n";}print<<<_HTML_</select><br/><input type="submit" value="Order"><input type="hidden" name="_submit_check" value="1"> </form> _HTML_;} En validar_form() if (!in_array($_POST[‘order’], $GLOBALS[`sweets`])){$errores[]=‘por favor elije un item válido.`; }
  • 10. J.J. Taboada León Actividades • Modificar la actividad formulario3 del cuaderno de actividades formularios, para que se validen los datos introducidos y se presente los oportunos mensajes de errores aplicando las técnicas aquí propuestas. 23/11/2016Implantación de Aplicaciones WEB.FORMATOS DE PRESENTACIÓN. JJ Taboada
  • 11. J.J. Taboada León Validar con Expresiones regulares Juan José Taboada León 2011/2012 Horas de Libre Configuración. Formularios JavaScript Son patrones (cadenas) que permiten buscar coincidencias con combinaciones de caracteres dentro de otras cadenas de texto El objetivo es crear una cadena especial para hacer búsqueda en otra cadena. Si la expresión regular encaja (match) en la cadena de búsqueda, la operación resultas exitosa. Ejemplo, la expresión regular /ejemplo/ encontrará la subcadena "ejemplo" dentro de la cadena "Esto es un ejemplo." Se utiliza con la fución preg_match()
  • 12. J.J. Taboada León Ejemplos <?php //Demilitador 'i' para no diferenciar mayus y minus if (preg_match("/PRUEBA/i", "esto es una prueba")) { echo "HAY COINCIDENCIA"; }else { echo "NO HAY COINCIDENCIA"; } ?> 23/11/2016Implantación de Aplicaciones WEB.FORMATOS DE PRESENTACIÓN. JJ Taboada //buscando al menos 2 numeros seguidos en la cadena if (preg_match('/[0-9]{2}/',”sanSeba22@email.com")) { echo "HAY COINCIDENCIA"; } else { echo "NO HAY COINCIDENCIA"; }
  • 13. J.J. Taboada León $entero preg_match ($exp_regular , $cadena [, $coincidencias[, $flags [, $comienzo ]]]) SINTAXIS PHP PREG_MATCH() 23/11/2016Implantación de Aplicaciones WEB.FORMATOS DE PRESENTACIÓN. JJ Taboada $entero: El valor devuelto será ’1′ si hay coincidencia, ’0′ si no la hay, y puede devolver FALSE si hay algún error en la función. $exp_regular: Expresión regular que usaremos para la comparación. $cadena: Cadena de texto comparada. $coincidencias: Es un array con información de las partes de la cadena que coinciden con la expresión regular. $flags: Si se pasa el parametro ‘PREG_OFFSET_CAPTURE’ en el array de coincidencias también vendrá el índice de comienzo de cada coincidencia. $comienzo: Posición de comienzo dentro de la $cadena de la comparación.
  • 14. J.J. Taboada León Expresiones regulares (Algunos caracteres especiales I) Metacaracteres • . Match con cualquier carácter • ^ Match al principio del string • $ Match al final del string • s Match con cualquier espacio en blanco • d Match con cualquier dígito • D Match con cualquier carácter que no sea un dígito • w Match con cualquier carácter que pueda ser parte de una palabra (letra, número, guión bajo) • W Match con cualquier carácter que NO pueda ser parte de una palabra (letra, número, guión bajo) • A Inicio de un string. • z Final de un string.
  • 15. J.J. Taboada León Expresiones regulares (Algunos caracteres especiales II) Cuantificadores • * el carácter puede aparecer cero o mas veces. • + el carácter puede aparecer una o mas veces. • ? el carácter puede aparecer cero o una vez. • {n} el carácter aparece exactamente n veces. • {n,}el carácter aparece n o más veces. • {n,m} el carácter puede aparecer entre n y m veces. • Como parte de la notación, siempre encerramos las expresiones regulares entre /, llaves ({}) o #. Por ejemplo, la expresión /ab?c/ hace match con ac y abc. La expresión regular /ab{1,3}c/ hace match con abc, abbcy abbbc.
  • 16. J.J. Taboada León Expresiones regulares (Algunos caracteres especiales III) Agrupadores • [] permiten agrupar creando rangos, por ejemplo /ab[0-5]+c/ hará match con cualquier string que contenga ab, una o más veces un número entre 0 y 5, y finalmente una c. Por ejemplo: ab12c. • () Nos permiten crear sub-expresiones, expresiones regulares contenidas dentro de otras: /a(bc.)+e/. Tiene un uso especial en formas como (…), que permite capturar todo lo que encierren los paréntesis, y (a|b) que hace match con a o b • Modificadores • Permiten cambiar el modo en que se ejecute la expresión regular. Se agregan después del delimitador de cierre. • i Coincidir indistintamente entre mayúsculas y minúsculas. • m Match multilínea. • s El metacaracter . hará match también con el caracter de cambio de línea. • u Hacer los matches en modo UTF8 • x Ignorar espacios.
  • 17. J.J. Taboada León Ejemplo: Validar un email 23/11/2016Implantación de Aplicaciones WEB.FORMATOS DE PRESENTACIÓN. JJ Taboada function verificar_email($email) { if(preg_match("/^([a-zA-Z0-9])+([a-zA-Z0-9._-])*@([a-zA-Z0-9_-])+([a-zA- Z0-9._-]+)+$/",$email)) { return true; } return false; }
  • 18. J.J. Taboada León Ejemplo: Verificar si una contraseña es segura 23/11/2016Implantación de Aplicaciones WEB.FORMATOS DE PRESENTACIÓN. JJ Taboada function verificar_password_strenght($password) { if (preg_match("/^.*(?=.{8,})(?=.*d)(?=.*[a-z])(?=.*[A-Z]).*$/", $password)) echo "Su password es seguro."; else echo "Su password no es seguro."; }
  • 19. J.J. Taboada León Unidad 2 2.6 VALIDAR FORMULARIOS FIN DE LA PRESENTACIÓN GRACIAS 23/11/2016Implantación de Aplicaciones WEB.FORMATOS DE PRESENTACIÓN. JJ Taboada