Foros del Web » Programando para Internet » PHP »

Problema al validar un e-mail de un formulario

Estas en el tema de Problema al validar un e-mail de un formulario en el foro de PHP en Foros del Web. Hola En mi web tengo un formulario y no se como comprobar la validez de una dirección e-mail, es decir, que detecte el signo @, ...
  #1 (permalink)  
Antiguo 20/04/2010, 09:48
 
Fecha de Ingreso: marzo-2008
Mensajes: 186
Antigüedad: 16 años
Puntos: 3
Problema al validar un e-mail de un formulario

Hola

En mi web tengo un formulario y no se como comprobar la validez de una dirección e-mail, es decir, que detecte el signo @, he estado mirando en la wiki y probando pero no resuelvo el problema.

Primero os dejo el html y luego el php

Código HTML:
Ver original
  1. <form action="form.php" method="post">
  2. Tu nombre: <input type="text" name="nombre" value="<?php if (isset($_POST['nombre'])) { echo $_POST['nombre']; } ?>">
  3. Tu mail:<input type="text" name="mail" value="<?php if (isset($_POST['mail'])) { echo $_POST['mail']; } ?>">
  4. Mensaje:<input type="text" name="mensaje" value="<?php if (isset($_POST['mensaje'])) { echo $_POST['mensaje']; } ?>">
  5. <input type="submit" name="submitbutton" value="Envíalo!">
  6. </form>

Código PHP:
Ver original
  1. <?php
  2. if (isset($_POST['nombre']) && ($_POST['mail']) && ($_POST['mensaje']) &&
  3. $_POST['nombre'] != "" && $_POST['mail'] != "" && $_POST['mensaje'] != "") {
  4.   echo "<b>{$_POST['nombre']}</b>, encantado de saludarte.\n";
  5.   echo "<b>{$_POST['mail']}</b>, vaya correo.\n";
  6.   echo "<b>{$_POST['mensaje']}</b>, buen comentario.\n";
  7. } else {
  8.   if (isset($_POST['submitbutton'])) {
  9.     echo "Por favor rellena todos los campos";
  10.   }
  11. }
  12. ?>

Como véis todos los campos son obligatorios, pero claro se trata de que el email sea válido y no cualquier texto falso, que puedo añadir al código???

espero vuestras respuestas, gracias por anticipado.
  #2 (permalink)  
Antiguo 20/04/2010, 09:51
Colaborador
 
Fecha de Ingreso: octubre-2009
Ubicación: Tokyo - Japan !
Mensajes: 3.867
Antigüedad: 14 años, 6 meses
Puntos: 334
Respuesta: Problema al validar un e-mail de un formulario

Código PHP:
Ver original
  1. if(!preg_match('/^([\w\.]{3,30})@([\w]{2,20})\.([a-z0-9]{2,6})(\.[a-z0-9]{2,6}){0,3}$/i', $email)){
  2.  echo 'email invalido';
  3. }


Revisa la información de PCRE
en la Documentacion de PHP

saludos!
__________________
More about me...
~ @rhyudek1
~ Github
  #3 (permalink)  
Antiguo 20/04/2010, 10:17
 
Fecha de Ingreso: marzo-2008
Mensajes: 186
Antigüedad: 16 años
Puntos: 3
Respuesta: Problema al validar un e-mail de un formulario

gracias por la respuesta, he añadido la siguiente linea de codigo:

Código PHP:
Ver original
  1. $email = $_POST['mail'];

la unica que duda es donde coloco exactamente el código que me dices para que funcione bien?
  #4 (permalink)  
Antiguo 20/04/2010, 10:19
Colaborador
 
Fecha de Ingreso: octubre-2009
Ubicación: Tokyo - Japan !
Mensajes: 3.867
Antigüedad: 14 años, 6 meses
Puntos: 334
Respuesta: Problema al validar un e-mail de un formulario

Código PHP:
Ver original
  1. <?php
  2. if (isset($_POST['nombre']) && ($_POST['mail']) && ($_POST['mensaje']) &&
  3. $_POST['nombre'] != "" && $_POST['mail'] != "" && $_POST['mensaje'] != "") {
  4.   // aqui
  5.   echo "<b>{$_POST['nombre']}</b>, encantado de saludarte.\n";
  6.   echo "<b>{$_POST['mail']}</b>, vaya correo.\n";
  7.   echo "<b>{$_POST['mensaje']}</b>, buen comentario.\n";
  8. } else {
  9.   if (isset($_POST['submitbutton'])) {
  10.     echo "Por favor rellena todos los campos";
  11.   }
  12. }
  13. ?>
__________________
More about me...
~ @rhyudek1
~ Github
  #5 (permalink)  
Antiguo 20/04/2010, 10:27
 
Fecha de Ingreso: marzo-2008
Mensajes: 186
Antigüedad: 16 años
Puntos: 3
Respuesta: Problema al validar un e-mail de un formulario

Muchas gracias hidek, justo lo habia colocado ahi, despues de definir la variable $email, pero tendria alguna llave de mas o algun otro error que no sabia. Problema ya resuelto.

Solo una ultima cosa y perdona por la insistencia, el formulario tiene todos los campos obligatorios y si dejo alguno vacio no inserta los datos, con el email se muestra email invalido si fuerzo el error, pero como puedo hacer que no deje insertar datos si el email es falso?

disculpa la insistencia.

Última edición por PSPforever; 20/04/2010 a las 10:34

Etiquetas: e-mail, formulario
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 23:12.