Foros del Web » Programando para Internet » PHP »

problema con validacion de campo e-mail en php

Estas en el tema de problema con validacion de campo e-mail en php en el foro de PHP en Foros del Web. hola muchachos tengo una duda muy grande acerca de validar e-mail tengo estos archivos humor.php en donde esta el form este es mi codigo <form ...
  #1 (permalink)  
Antiguo 27/03/2012, 13:54
Avatar de siguiendolaluna  
Fecha de Ingreso: noviembre-2011
Mensajes: 28
Antigüedad: 13 años
Puntos: 0
Busqueda problema con validacion de campo e-mail en php

hola muchachos tengo una duda muy grande acerca de validar e-mail

tengo estos archivos

humor.php en donde esta el form este es mi codigo

<form action="publicandoCom.php" method="post" enctype="multipart/form-data" name="comentarios"><br/>
Nombre <br />
<input name="nick" type="text" id="nick" size="50" maxlength="20" /><br />
<div>Mail</div>
<input name="mail" type="text" id="mail" size="50" maxlength="50" /><br />

<input type="hidden" name="origen" size="20" id="origen" value="h" /><br />
<span>Comentario</span><br />
<textarea name="comentario" cols="50" rows="5" id="comentario"></textarea><br/>
<input name="fecha" type="hidden" value="<?=date("Y-m-d"); ?> <?=date("h:i:s");?>" /><br />
<input type="submit" name="enviar" value="Enviar" />
</form>


y el archivo publicandoCom.php que ingresa los datos a la BD

<?php
include ('/includes/connect.php');
$nick = $_POST['nick'];
$mail = $_POST['mail'];
$comentario = $_POST['comentario'];
$origen = $_POST['origen'];
$fecha = $_POST['fecha'];

$query = "INSERT INTO comentarios (nick, mail, comentario, origen, fecha)
VALUES('$nick', '$mail', '$comentario', '$origen', NOW())";
mysql_query($query) or die(mysql_error());

?>
<table width="100%" border="0" align="center" cellspacing="1">
<tr>
<td align="center" valign="middle"><a href="<?=$_SERVER["HTTP_REFERER"]?>" class="f"><strong>Comentario Ingresado Con Exito Volver Atras</strong></a></td>
</tr>
</table>

como hago para que antes de que ingrese al publicandoCom.php
vea si el mail es valido o no
  #2 (permalink)  
Antiguo 27/03/2012, 14:18
Avatar de IsaBelM
Colaborador
 
Fecha de Ingreso: junio-2008
Mensajes: 5.032
Antigüedad: 16 años, 5 meses
Puntos: 1012
Respuesta: problema con validacion de campo e-mail en php

prueba con esto
Cita:
<?php
function vMail($correo) {
// Ninguna cuenta de email puede tener menos de 5 caracteres "[email protected]"
if (strlen($correo) < 5) {
return false;
}

$localOK = "(^(([A-Za-z0-9!#$%&'*+/=?^_`{|}~-][A-Za-z0-9!#$%&'*+/=?^_`{|}~\.-]{0,63})|(\'[^(\\|\')]{0,62}\'))$)";
$ipOK = "(^\[?[0-9\.]+\]?$)";
$dominoOK = "(^(([A-Za-z0-9][A-Za-z0-9-]{0,61}[A-Za-z0-9])|([A-Za-z0-9]+))$)";

// Divimos el correo en 3 secciones
$correo_array = explode("@", $correo);
$local_array = explode(".", $correo_array[0]);
$domain_array = explode(".", $correo_array[1]);

// Hay más de una @
if (sizeof($correo_array) != 2) {
return false;
}


// Incorrecto número de caracteres en alguna de las dos partes
if (strlen($correo_array[0]) < 1 || strlen($correo_array[1]) < 1) {
return false;
}

// Buscamos que el email no tenga espacios en blancos "a @b.c"
if (strpos($correo, " ") != 0) {
return false;
}


for ($i = 0; $i < sizeof($local_array); $i++) {
if (!ereg($localOK, $local_array[$i])) {
return false;
}
}

// Se revisa si el dominio es una IP. Si no, debe ser un nombre de dominio válido
if (!ereg($ipOK, $correo_array[1])) {
// Incorrecto número de secciones por exceso o defecto para ser un dominio
if (sizeof($domain_array) < 2 || sizeof($domain_array) > 3) {
return false;
}

for ($i = 0; $i < sizeof($domain_array); $i++) {
if (!ereg($dominoOK, $domain_array[$i])) {
return false;
}
}
}
return true;
}


if (vMail($_POST["email"])) {
echo "<b>".$_POST["email"]."</b> email válido";
} else {
echo "<b>".$_POST["email"]."</b> email NO válido";
}
?>
__________________
if(ViolenciaDeGénero) {alert('MUJER ASESINADA');}
  #3 (permalink)  
Antiguo 28/03/2012, 20:04
Avatar de siguiendolaluna  
Fecha de Ingreso: noviembre-2011
Mensajes: 28
Antigüedad: 13 años
Puntos: 0
Respuesta: problema con validacion de campo e-mail en php

gracias por responder pero tengo una pregunta , esa linea de codigos en que documento debo arregarlo, en donde esta el FORM "humor.php" o en el php "publicandoCom.php" que envia los datos a la BD
  #4 (permalink)  
Antiguo 28/03/2012, 21:35
Avatar de truman_truman  
Fecha de Ingreso: febrero-2010
Ubicación: /home/user
Mensajes: 1.341
Antigüedad: 14 años, 9 meses
Puntos: 177
Respuesta: problema con validacion de campo e-mail en php

El codigo va en publicandoCom.php



y...

Código PHP:
Ver original
  1. if (vMail($_POST["email"]))
  2. {
  3.  
  4. ENTRE ESTAS 2 LLAVES VA EL CODIGO QUE ACTUALMENTE ESTÁ EN TU publicandoCom.php
  5.  
  6.  
  7. } else {
  8. echo "<b>".$_POST["email"]."</b> email NO válido";
  9. }
__________________
la la la
  #5 (permalink)  
Antiguo 29/03/2012, 19:37
Avatar de siguiendolaluna  
Fecha de Ingreso: noviembre-2011
Mensajes: 28
Antigüedad: 13 años
Puntos: 0
Respuesta: problema con validacion de campo e-mail en php

hola me surgio un errror el ejecutar el sodigo es este


Notice: Undefined offset: 1 in C:\wamp\www\Sou\humor\publicandoCom.php on line 27
Call Stack
# Time Memory Function Location
1 0.0015 390880 {main}( ) ..\publicandoCom.php:0
2 0.0136 396992 vMail( ) ..\publicandoCom.php:69


line 27

$domain_array = explode(".", $correo_array[1]);


line 69

if (vMail($_POST["mail"])) {
  #6 (permalink)  
Antiguo 03/04/2012, 14:05
Avatar de siguiendolaluna  
Fecha de Ingreso: noviembre-2011
Mensajes: 28
Antigüedad: 13 años
Puntos: 0
Respuesta: problema con validacion de campo e-mail en php

ahora le ingrese un mail vaido el mio y salieron estos errores

( ! ) Deprecated: Function ereg() is deprecated in C:\wamp\www\Sou\humor\publicandoCom.php on line 47
Call Stack
# Time Memory Function Location
1 0.0013 389376 {main}( ) ..\publicandoCom.php:0
2 0.0173 395496 vMail( ) ..\publicandoCom.php:69

( ! ) Deprecated: Function ereg() is deprecated in C:\wamp\www\Sou\humor\publicandoCom.php on line 53
Call Stack
# Time Memory Function Location
1 0.0013 389376 {main}( ) ..\publicandoCom.php:0
2 0.0173 395496 vMail( ) ..\publicandoCom.php:69

( ! ) Notice: Undefined variable: domain_array in C:\wamp\www\Sou\humor\publicandoCom.php on line 55
Call Stack
# Time Memory Function Location
1 0.0013 389376 {main}( ) ..\publicandoCom.php:0
2 0.0173 395496 vMail( ) ..\publicandoCom.php:69
[email protected] email NO vĂĄlido
  #7 (permalink)  
Antiguo 03/04/2012, 15:22
Avatar de IsaBelM
Colaborador
 
Fecha de Ingreso: junio-2008
Mensajes: 5.032
Antigüedad: 16 años, 5 meses
Puntos: 1012
Respuesta: problema con validacion de campo e-mail en php

en cuanto a ereg(), lee las notas. domain_array está definida
__________________
if(ViolenciaDeGénero) {alert('MUJER ASESINADA');}
  #8 (permalink)  
Antiguo 04/04/2012, 11:13
 
Fecha de Ingreso: septiembre-2011
Mensajes: 480
Antigüedad: 13 años, 2 meses
Puntos: 18
Respuesta: problema con validacion de campo e-mail en php

compañero para validar el email...puedes hacerlos de dos formas muy sencillas tanto en el PHP como en el HTML5 mira en el HTML 5 es creando un input que en vez de type text es type email
ya por alli validas que sea email ese campo! pero hay q tener mucho cuidado ya que no todos los exploradores actualmente soporta html5 ya que el html5 es nuevo!

bueno y con el PHP con esto es suficiente

if(! filter_var($email, FILTER_VALIDATE_EMAIL))
{
echo "NO es un correo";
}else{
echo "Es un correo";
}

y listo de esa forma! validas con el php si es un Email o no! :D y ps como ves dentro de los if metes el codigo que quieras :D suerte
  #9 (permalink)  
Antiguo 04/04/2012, 11:20
Avatar de truman_truman  
Fecha de Ingreso: febrero-2010
Ubicación: /home/user
Mensajes: 1.341
Antigüedad: 14 años, 9 meses
Puntos: 177
Respuesta: problema con validacion de campo e-mail en php

Cita:
Iniciado por edward18_1 Ver Mensaje
if(! filter_var($email, FILTER_VALIDATE_EMAIL))
{
echo "NO es un correo";
}else{
echo "Es un correo";
}

y listo de esa forma! validas con el php si es un Email o no! :D y ps como ves dentro de los if metes el codigo que quieras :D suerte
esta si que no la tenía FILTER_VALIDATE_EMAIL, muy buena, gracias por compertirla
__________________
la la la
  #10 (permalink)  
Antiguo 04/04/2012, 19:31
 
Fecha de Ingreso: septiembre-2011
Mensajes: 480
Antigüedad: 13 años, 2 meses
Puntos: 18
Respuesta: problema con validacion de campo e-mail en php

Por nada :D siempre compartiendo el conocimiento

Etiquetas: e-mail, mysql, sql, campos
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 13:11.