Ver Mensaje Individual
  #6 (permalink)  
Antiguo 28/05/2014, 05:35
lolainas
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Problema de validación PHP

Usa la extensión filter
Código PHP:
Ver original
  1. <?php
  2. $form = filter_input_array(INPUT_POST, [
  3.     'email'  => FILTER_VALIDATE_EMAIL,
  4.     'nombre' => FILTER_DEFAULT,
  5.     'edad'   => [
  6.         'filter'  => FILTER_VALIDATE_INT,
  7.         'options' => ['min_range' => 18, 'max_range' => 120]
  8. ]]);
  9. ?>
  10. <!DOCTYPE html>
  11. <html lang="es">
  12.     <head>
  13.         <meta charset="utf-8">
  14.         <title>Validación</title>
  15.     </head>
  16.     <body>
  17.         <?php if ($form && $form['email'] && $form['nombre'] && $form['edad']) : ?>
  18.             <h1>Gracias!</h1>
  19.             <p>Email: <?= $form['email'] ?></p>
  20.             <p>Nombre: <?= $form['nombre'] ?></p>
  21.             <p>Edad: <?= $form['edad'] ?></p>
  22.         <?php else : ?>
  23.             <form method="post">
  24.                 <input type="text" name="email" placeholder="Correo electrónico" />
  25.                 <?php if ($form && empty($form['email'])) : ?>
  26.                     <span style="color:red">Email inválido</span>
  27.                 <?php endif; ?>
  28.                 <br />
  29.                 <input type="text" name="nombre" placeholder="Nombre" />
  30.                 <?php if ($form && empty($form['nombre'])) : ?>
  31.                     <span style="color:red">Nombre inválido</span>
  32.                 <?php endif; ?>
  33.                 <br />
  34.                 <input type="text" name="edad" placeholder="Edad" />
  35.                 <?php if ($form && empty($form['edad'])) : ?>
  36.                     <span style="color:red">Edad inválida</span>
  37.                 <?php endif; ?>
  38.                 <br />
  39.                 <button type="submit">Enviar</button>
  40.             </form>
  41.         <?php endif; ?>
  42.     </body>
  43. </html>

Tips para más adelante:

Para qué escribir una expresión regular para correos electrónicos si PHP proporciona una forma de saber si es válido?

Ten cuidado, los datos sólo se validan a la entrada y se limpian sólo en la salida.
Yo como usuario tengo derecho a elegir la contraseña que me apetezca, qué pasa si elijo "hsa23jk<j4sd>fds&*y" y tú me haces un strip tags antes de comprobar que es correcta?
pues que compararás esto "hsa23jk<j4sd>fds&*y" con esto "hsa23jk?fds&*y" y nunca voy a poder entrar...