CursosEmpresasBlogLiveConfPrecios

Validando datos

Clase 19 de 24 • Curso de PHP: Integración con HTML

Clase anteriorSiguiente clase

Contenido del curso

Introducción

  • 1
    ¿Cómo se renderiza una página web en mi computadora?

    ¿Cómo se renderiza una página web en mi computadora?

    08:20 min
  • 2
    Levantando un servidor local

    Levantando un servidor local

    09:59 min

¿Cómo combinar HTML con PHP?

  • 3
    PHP como preprocesador de HTML

    PHP como preprocesador de HTML

    08:43 min
  • 4
    Imprime texto y etiquetas HTML

    Imprime texto y etiquetas HTML

    07:00 min
  • 5
    Condicionales

    Condicionales

    11:43 min
  • 6
    Ciclos

    Ciclos

    09:41 min
  • 7
    ¿Cómo pasar variables de PHP a JavaScript?

    ¿Cómo pasar variables de PHP a JavaScript?

    16:26 min
  • 8
    Evita el código espagueti

    Evita el código espagueti

    08:58 min
  • 9
    Refactorizando código espagueti

    Refactorizando código espagueti

    18:19 min

Manejo de formularios

  • 10
    Cómo obtener una solicitud al servidor con PHP

    Cómo obtener una solicitud al servidor con PHP

    08:01 min
  • 11
    Envío de un formulario a través de GET

    Envío de un formulario a través de GET

    12:13 min
  • 12
    Envío de un formulario a través de POST

    Envío de un formulario a través de POST

    07:38 min
  • 13
    Envío de imágenes

    Envío de imágenes

    09:02 min
  • 14
    Guardando imágenes en el servidor

    Guardando imágenes en el servidor

    07:56 min
  • 15
    Tipos de inputs

    Tipos de inputs

    15:29 min
  • 16
    Otros tipos de inputs

    Otros tipos de inputs

    07:14 min
  • 17
    Valida si un formulario ha sido enviado

    Valida si un formulario ha sido enviado

    11:21 min
  • 18
    Sanitizando datos de mi formulario

    Sanitizando datos de mi formulario

    15:05 min
  • 19
    Validando datos

    Validando datos

    Viendo ahora

Proyecto: formulario de contacto

  • 20
    Creando el maquetado

    Creando el maquetado

    13:03 min
  • 21
    Haciendo la lógica de recepción del formulario

    Haciendo la lógica de recepción del formulario

    12:02 min
  • 22
    Integrando PHPMailer

    Integrando PHPMailer

    20:36 min
  • 23
    Implementando el servidor de correos de Gmail

    Implementando el servidor de correos de Gmail

    07:40 min

Conclusión

  • 24
    Es tu turno de poner todo en práctica

    Es tu turno de poner todo en práctica

    01:50 min
  • Tomar el examen del curso
    • Eduer Pallares Jiménez

      Eduer Pallares Jiménez

      student•
      hace 4 años

      Validaciones de tipo:

      // Validar si es un número $isNumeric = is_numeric('3d'); // False $isNumeric1 = is_numeric('3'); // True $isNumeric2 = is_numeric(3); // True // Validar si es un string $isString = is_string('3d'); // True $isString1 = is_string('3'); // True $isString2 = is_string(3); // false // validar si es un array $isArray = is_array([]); // true $isArray2 = is_array(array()); // true $isArray3 = is_array('No soy un array xD soy un string'); // false
      Walter Omar Barrios Vazquez

      Walter Omar Barrios Vazquez

      student•
      hace 4 años

      Ejemplos de validaciones

      $is_float = filter_var("0.9", FILTER_VALIDATE_FLOAT, FILTER_FLAG_ALLOW_THOUSAND); $is_int = filter_var("45", FILTER_VALIDATE_INT); $is_ip = filter_var("127.0.0.1", FILTER_VALIDATE_IP); $is_url = filter_var("https://platzi.com", FILTER_VALIDATE_URL); $is_email = filter_var("mrmichi@michisancio.com", FILTER_VALIDATE_EMAIL);
      Joel Dominguez Merino

      Joel Dominguez Merino

      student•
      hace 3 años

      Wow, de verdad que PHP me sorprende todo lo que permite hacer y lo que ya tiene pre-definido. Se podría decir que la diferencia con la sanitización seria que estas validan que el valor en concreto sea del tipo elegido mientras que la sanitización las limpia solamente? Comparto mi apunte con algunas validaciones como las que vimos en clase. . Código:

      <?php // Creando variables manualmente para hacer su respectiva validación $esEntero = "12"; $noEsEntero = 12.7; $esFloat = "81.87"; $noEsFloat = "joel78.87"; $esIP = "192.168.0.11"; $noEsIP = "192.168"; $esEmail = "joel.dome@densi.com"; $noEsEmail = "joeldome@densi"; $esBooleano = "true"; $noEsBooleano = "soytrue"; $esURL = "https://joel.com"; $noEsURL = "joel.com"; // Validando datos en PHP gracias a la función filter_var // Si es válido, devuelve el valor validado // Si no es válido, devuelve un 'false' // Validando si es un número entero echo("<p>Validando si es un número entero</p>"); echo("<pre>"); var_dump( filter_var($esEntero, FILTER_VALIDATE_INT) ); // int(12) var_dump( filter_var($noEsEntero, FILTER_VALIDATE_INT) ); // bool(false) echo("</pre>"); // Validando si es un número de tipo float echo("<p>Validando si es un número de tipo float</p>"); echo("<pre>"); var_dump( filter_var($esFloat, FILTER_VALIDATE_FLOAT) ); // float(81.87) var_dump( filter_var($noEsFloat, FILTER_VALIDATE_FLOAT) ); // bool(false) echo("</pre>"); // Validando si es una IP echo("<p>Validando si es una IP</p>"); echo("<pre>"); var_dump( filter_var($esIP, FILTER_VALIDATE_IP) ); // string(12) "192.168.0.11" var_dump( filter_var($noEsIP, FILTER_VALIDATE_IP) ); // bool(false) echo("</pre>"); // Validando si es un correo echo("<p>Validando si es un correo electronico</p>"); echo("<pre>"); var_dump( filter_var($esEmail, FILTER_VALIDATE_EMAIL) ); // string(19) "joel.dome@densi.com" var_dump( filter_var($noEsEmail, FILTER_VALIDATE_EMAIL) ); // bool(false) echo("</pre>"); // Validando si es un booleano echo("<p>Validando si es un booleano</p>"); echo("<pre>"); var_dump( filter_var($esBooleano, FILTER_VALIDATE_BOOLEAN) ); // // bool(true) var_dump( filter_var($noEsBooleano, FILTER_VALIDATE_BOOLEAN) ); // bool(false) echo("</pre>"); // Validando si es una URL válida echo("<p>Validando si es una URL válida</p>"); echo("<pre>"); var_dump( filter_var($esURL, FILTER_VALIDATE_URL) ); // // string(16) "https://joel.com" var_dump( filter_var($noEsURL, FILTER_VALIDATE_URL) ); // bool(false) echo("</pre>");

      .

      Resultado:

      php.png

      LESTHER XITUMUL MANUEL

      LESTHER XITUMUL MANUEL

      student•
      hace 2 años

      FILTER_VAR EN PH

      Aquí tienes una lista de algunas propiedades o argumentos utilizados con la función filter_var en PHP, junto con una breve descripción y ejemplos prácticos:

      • FILTER_VALIDATE_EMAIL: Valida si una cadena es una dirección de correo electrónico válida.

        $email = 'john@example.com'; if (filter_var($email, FILTER_VALIDATE_EMAIL)) { echo "La dirección de correo electrónico es válida."; } else { echo "La dirección de correo electrónico no es válida."; } // Output esperado: La dirección de correo electrónico es válida.
      • FILTER_VALIDATE_URL: Valida si una cadena es una URL válida.

        $url = '<https://example.com>'; if (filter_var($url, FILTER_VALIDATE_URL)) { echo "La URL es válida."; } else { echo "La URL no es válida."; } // Output esperado: La URL es válida.
      • FILTER_VALIDATE_IP: Valida si una cadena es una dirección IP válida.

        $ip = '192.168.0.1'; if (filter_var($ip, FILTER_VALIDATE_IP)) { echo "La dirección IP es válida."; } else { echo "La dirección IP no es válida."; } // Output esperado: La dirección IP es válida.
      • FILTER_VALIDATE_INT: Valida si una cadena es un número entero válido.

        $number = '42'; if (filter_var($number, FILTER_VALIDATE_INT)) { echo "El número es válido."; } else { echo "El número no es válido."; } // Output esperado: El número es válido.
      • FILTER_VALIDATE_FLOAT: Valida si una cadena es un número de punto flotante válido.

        $float = '3.14'; if (filter_var($float, FILTER_VALIDATE_FLOAT)) { echo "El número de punto flotante es válido."; } else { echo "El número de punto flotante no es válido."; } // Output esperado: El número de punto flotante es válido.
      • FILTER_VALIDATE_BOOLEAN: Valida si una cadena es un valor booleano válido (true o false).

        $value = 'true'; if (filter_var($value, FILTER_VALIDATE_BOOLEAN)) { echo "El valor es válido."; } else { echo "El valor no es válido."; } // Output esperado: El valor es válido.
      • FILTER_VALIDATE_REGEXP: Valida si una cadena coincide con un patrón de expresión regular.

        $pattern = '/^[a-zA-Z0-9]+$/'; $username = 'john123'; if (filter_var($username, FILTER_VALIDATE_REGEXP, array("options" => array("regexp" => $pattern)))) { echo "El nombre de usuario es válido."; } else { echo "El nombre de usuario no es válido."; } // Output esperado: El nombre de usuario es válido.

      Recuerda que estas son solo algunas de las propiedades más comunes utilizadas con filter_var. Puedes consultar la documentación oficial de PHP para obtener más información y ver todas las opciones disponibles.

      Leonardo Jiménez Ubaque

      Leonardo Jiménez Ubaque

      student•
      hace 2 años

      Validando datos

      La validación de datos es un proceso fundamental en la programación y el desarrollo de aplicaciones por varias razones importantes:

      1. Integridad de Datos: La validación de datos asegura que los datos sean precisos, coherentes y confiables. Esto es crucial para mantener la integridad de la información en una aplicación o sistema.
      2. Seguridad: La validación de datos ayuda a prevenir vulnerabilidades de seguridad como la inyección de SQL y los ataques de scripting entre sitios (XSS). Al validar los datos de entrada, se evita que los atacantes inyecten código malicioso en la aplicación.
      3. Cumplimiento de Normativas: En muchas industrias, existen regulaciones y normativas que requieren la validación de datos, especialmente cuando se trata de datos sensibles o privados, como información financiera o médica. Cumplir con estas normativas es esencial para evitar sanciones legales.
      4. Mejora de la Experiencia del Usuario: Validar datos también puede mejorar la experiencia del usuario al garantizar que los datos ingresados sean válidos y útiles. Por ejemplo, al validar formularios web, se pueden proporcionar mensajes de error claros y útiles en lugar de que los usuarios se enfrenten a errores inesperados.
      5. Evitar Errores y Comportamientos Inesperados: La validación de datos ayuda a evitar errores y comportamientos inesperados en una aplicación. Esto puede incluir problemas como divisiones por cero, valores nulos inesperados o resultados incorrectos debido a datos no válidos.
      6. Optimización de Rendimiento: Al garantizar que los datos sean válidos y útiles, se puede optimizar el rendimiento de la aplicación. Esto significa que la aplicación puede funcionar de manera más eficiente y rápida al evitar cálculos innecesarios o acciones basadas en datos incorrectos.
      7. Prevención de Ataques de Inyección: La validación adecuada de datos es esencial para prevenir ataques de inyección, como la inyección de SQL y la inyección de comandos en sistemas. Al validar y filtrar datos de entrada, se impide que los atacantes ejecuten código malicioso en la aplicación.

      En resumen, la validación de datos es una práctica crítica en el desarrollo de software para garantizar la precisión, la seguridad y el rendimiento de una aplicación, al tiempo que se mejora la experiencia del usuario y se cumple con las normativas aplicables.

      Código desarrollado en la clase

      Servidor PHP

      <?php // // Truco para debugear y ver lo que llega por POST // echo "<pre>"; // var_dump($_POST); // Recupera la información que se envía por POST // var_dump($_FILES); // Recupera la información que se envía por FILES // echo "</pre>"; // Formas de validar datos usando filter_var() $dato1 = "Hola"; $dato2 = "Hola123"; $datoIP = "127.0.0.1"; $datoURL = "https://www.google.com"; $datoEmail = "Holaaaaaaaaaaaaaaa"; $es_float = filter_var($dato1, FILTER_VALIDATE_FLOAT, FILTER_FLAG_ALLOW_THOUSAND); // Filtro para validar floats. El flag FILTER_FLAG_ALLOW_THOUSAND permite que el float tenga separador de miles. if ($es_float) { echo "Es un float <br>"; } else { echo "No es un float <br>"; } $es_int = filter_var($dato2, FILTER_VALIDATE_INT); // Filtro para validar ints. if ($es_int) { echo "Es un int <br>"; } else { echo "No es un int <br>"; } $es_ip = filter_var($datoIP, FILTER_VALIDATE_IP); // Filtro para validar IPs. if ($es_ip) { echo "Es una IP <br>"; } else { echo "No es una IP <br>"; } $es_url = filter_var($datoURL, FILTER_VALIDATE_URL); // Filtro para validar URLs. if ($es_url) { echo "Es una URL <br>"; } else { echo "No es una URL <br>"; } $es_email = filter_var($datoEmail, FILTER_VALIDATE_EMAIL); // Filtro para validar emails. if ($es_email) { echo "Es un email <br>"; } else { echo "No es un email <br>"; } ?>
      Diego Frank Lipa Choque

      Diego Frank Lipa Choque

      student•
      hace 3 años
      <?php $is_float = filter_var("0.9", FILTER_VALIDATE_FLOAT, FILTER_FLAG_ALLOW_THOUSAND); $is_int = filter_var("45", FILTER_VALIDATE_INT); $is_ip = filter_var("127.0.0.1", FILTER_VALIDATE_IP); $is_url = filter_var("https://platzi.com", FILTER_VALIDATE_URL); $is_email = filter_var("mrmichi@michisancio.com", FILTER_VALIDATE_EMAIL); echo "<pre>"; var_dump($is_float); var_dump($is_int); var_dump($is_ip); var_dump($is_url); var_dump($is_email); echo "</pre>";```

    Escuelas

    • Desarrollo Web
      • Fundamentos del Desarrollo Web Profesional
      • Diseño y Desarrollo Frontend
      • Desarrollo Frontend con JavaScript
      • Desarrollo Frontend con Vue.js
      • Desarrollo Frontend con Angular
      • Desarrollo Frontend con React.js
      • Desarrollo Backend con Node.js
      • Desarrollo Backend con Python
      • Desarrollo Backend con Java
      • Desarrollo Backend con PHP
      • Desarrollo Backend con Ruby
      • Bases de Datos para Web
      • Seguridad Web & API
      • Testing Automatizado y QA para Web
      • Arquitecturas Web Modernas y Escalabilidad
      • DevOps y Cloud para Desarrolladores Web
    • English Academy
      • Inglés Básico A1
      • Inglés Básico A2
      • Inglés Intermedio B1
      • Inglés Intermedio Alto B2
      • Inglés Avanzado C1
      • Inglés para Propósitos Específicos
      • Inglés de Negocios
    • Marketing Digital
      • Fundamentos de Marketing Digital
      • Marketing de Contenidos y Redacción Persuasiva
      • SEO y Posicionamiento Web
      • Social Media Marketing y Community Management
      • Publicidad Digital y Paid Media
      • Analítica Digital y Optimización (CRO)
      • Estrategia de Marketing y Growth
      • Marketing de Marca y Comunicación Estratégica
      • Marketing para E-commerce
      • Marketing B2B
      • Inteligencia Artificial Aplicada al Marketing
      • Automatización del Marketing
      • Marca Personal y Marketing Freelance
      • Ventas y Experiencia del Cliente
      • Creación de Contenido para Redes Sociales
    • Inteligencia Artificial y Data Science
      • Fundamentos de Data Science y AI
      • Análisis y Visualización de Datos
      • Machine Learning y Deep Learning
      • Data Engineer
      • Inteligencia Artificial para la Productividad
      • Desarrollo de Aplicaciones con IA
      • AI Software Engineer
    • Ciberseguridad
      • Fundamentos de Ciberseguridad
      • Hacking Ético y Pentesting (Red Team)
      • Análisis de Malware e Ingeniería Forense
      • Seguridad Defensiva y Cumplimiento (Blue Team)
      • Ciberseguridad Estratégica
    • Liderazgo y Habilidades Blandas
      • Fundamentos de Habilidades Profesionales
      • Liderazgo y Gestión de Equipos
      • Comunicación Avanzada y Oratoria
      • Negociación y Resolución de Conflictos
      • Inteligencia Emocional y Autogestión
      • Productividad y Herramientas Digitales
      • Gestión de Proyectos y Metodologías Ágiles
      • Desarrollo de Carrera y Marca Personal
      • Diversidad, Inclusión y Entorno Laboral Saludable
      • Filosofía y Estrategia para Líderes
    • Diseño de Producto y UX
      • Fundamentos de Diseño UX/UI
      • Investigación de Usuarios (UX Research)
      • Arquitectura de Información y Usabilidad
      • Diseño de Interfaces y Prototipado (UI Design)
      • Sistemas de Diseño y DesignOps
      • Redacción UX (UX Writing)
      • Creatividad e Innovación en Diseño
      • Diseño Accesible e Inclusivo
      • Diseño Asistido por Inteligencia Artificial
      • Gestión de Producto y Liderazgo en Diseño
      • Diseño de Interacciones Emergentes (VUI/VR)
      • Desarrollo Web para Diseñadores
      • Diseño y Prototipado No-Code
    • Contenido Audiovisual
      • Fundamentos de Producción Audiovisual
      • Producción de Video para Plataformas Digitales
      • Producción de Audio y Podcast
      • Fotografía y Diseño Gráfico para Contenido Digital
      • Motion Graphics y Animación
      • Contenido Interactivo y Realidad Aumentada
      • Estrategia, Marketing y Monetización de Contenidos
    • Desarrollo Móvil
      • Fundamentos de Desarrollo Móvil
      • Desarrollo Nativo Android con Kotlin
      • Desarrollo Nativo iOS con Swift
      • Desarrollo Multiplataforma con React Native
      • Desarrollo Multiplataforma con Flutter
      • Arquitectura y Patrones de Diseño Móvil
      • Integración de APIs y Persistencia Móvil
      • Testing y Despliegue en Móvil
      • Diseño UX/UI para Móviles
    • Diseño Gráfico y Arte Digital
      • Fundamentos del Diseño Gráfico y Digital
      • Diseño de Identidad Visual y Branding
      • Ilustración Digital y Arte Conceptual
      • Diseño Editorial y de Empaques
      • Motion Graphics y Animación 3D
      • Diseño Gráfico Asistido por Inteligencia Artificial
      • Creatividad e Innovación en Diseño
    • Programación
      • Fundamentos de Programación e Ingeniería de Software
      • Herramientas de IA para el trabajo
      • Matemáticas para Programación
      • Programación con Python
      • Programación con JavaScript
      • Programación con TypeScript
      • Programación Orientada a Objetos con Java
      • Desarrollo con C# y .NET
      • Programación con PHP
      • Programación con Go y Rust
      • Programación Móvil con Swift y Kotlin
      • Programación con C y C++
      • Administración Básica de Servidores Linux
    • Negocios
      • Fundamentos de Negocios y Emprendimiento
      • Estrategia y Crecimiento Empresarial
      • Finanzas Personales y Corporativas
      • Inversión en Mercados Financieros
      • Ventas, CRM y Experiencia del Cliente
      • Operaciones, Logística y E-commerce
      • Gestión de Proyectos y Metodologías Ágiles
      • Aspectos Legales y Cumplimiento
      • Habilidades Directivas y Crecimiento Profesional
      • Diversidad e Inclusión en el Entorno Laboral
      • Herramientas Digitales y Automatización para Negocios
    • Blockchain y Web3
      • Fundamentos de Blockchain y Web3
      • Desarrollo de Smart Contracts y dApps
      • Finanzas Descentralizadas (DeFi)
      • NFTs y Economía de Creadores
      • Seguridad Blockchain
      • Ecosistemas Blockchain Alternativos (No-EVM)
      • Producto, Marketing y Legal en Web3
    • Recursos Humanos
      • Fundamentos y Cultura Organizacional en RRHH
      • Atracción y Selección de Talento
      • Cultura y Employee Experience
      • Gestión y Desarrollo de Talento
      • Desarrollo y Evaluación de Liderazgo
      • Diversidad, Equidad e Inclusión
      • AI y Automatización en Recursos Humanos
      • Tecnología y Automatización en RRHH
    • Finanzas e Inversiones
      • Fundamentos de Finanzas Personales y Corporativas
      • Análisis y Valoración Financiera
      • Inversión y Mercados de Capitales
      • Finanzas Descentralizadas (DeFi) y Criptoactivos
      • Finanzas y Estrategia para Startups
      • Inteligencia Artificial Aplicada a Finanzas
      • Domina Excel
      • Financial Analyst
      • Conseguir trabajo en Finanzas e Inversiones
    • Startups
      • Fundamentos y Validación de Ideas
      • Estrategia de Negocio y Product-Market Fit
      • Desarrollo de Producto y Operaciones Lean
      • Finanzas, Legal y Fundraising
      • Marketing, Ventas y Growth para Startups
      • Cultura, Talento y Liderazgo
      • Finanzas y Operaciones en Ecommerce
      • Startups Web3 y Blockchain
      • Startups con Impacto Social
      • Expansión y Ecosistema Startup
    • Cloud Computing y DevOps
      • Fundamentos de Cloud y DevOps
      • Administración de Servidores Linux
      • Contenerización y Orquestación
      • Infraestructura como Código (IaC) y CI/CD
      • Amazon Web Services
      • Microsoft Azure
      • Serverless y Observabilidad
      • Certificaciones Cloud (Preparación)
      • Plataforma Cloud GCP

    Platzi y comunidad

    • Platzi Business
    • Live Classes
    • Lanzamientos
    • Executive Program
    • Trabaja con nosotros
    • Podcast

    Recursos

    • Manual de Marca

    Soporte

    • Preguntas Frecuentes
    • Contáctanos

    Legal

    • Términos y Condiciones
    • Privacidad
    • Tyc promociones
    Reconocimientos
    Reconocimientos
    Logo reconocimientoTop 40 Mejores EdTech del mundo · 2024
    Logo reconocimientoPrimera Startup Latina admitida en YC · 2014
    Logo reconocimientoPrimera Startup EdTech · 2018
    Logo reconocimientoCEO Ganador Medalla por la Educación T4 & HP · 2024
    Logo reconocimientoCEO Mejor Emprendedor del año · 2024
    De LATAM conpara el mundo
    YoutubeInstagramLinkedInTikTokFacebookX (Twitter)Threads