Foros del Web » Programando para Internet » PHP »

comprobar un mail en una lista de correo

Estas en el tema de comprobar un mail en una lista de correo en el foro de PHP en Foros del Web. Miren tengo una lista de correo el cual el codigo esta aqui http://www.payasadas.net/lista.txt y quiero ponerle la opcion de que me compruebe el email antes ...
  #1 (permalink)  
Antiguo 11/05/2003, 17:10
 
Fecha de Ingreso: diciembre-2002
Ubicación: Santiago de Chile
Mensajes: 350
Antigüedad: 21 años, 11 meses
Puntos: 0
comprobar un mail en una lista de correo

Miren tengo una lista de correo el cual el codigo esta aqui

http://www.payasadas.net/lista.txt

y quiero ponerle la opcion de que me compruebe el email antes de que lo guarde en la bd


function comprobar_mail($mail){
if (!ereg("^([a-zA-Z0-9._]+)@([a-zA-Z0-9.-]+).([a-zA-Z]{2,4})$",$mail)){
return FALSE;
} else {
return TRUE;
}

}



ese es el codigo pero no se como debo ponerlo en este archivo

o tengo que ponerlo en el formulario?


<FORM ACTION=listaCorreo.php>
<div align="center"> <strong>
<INPUT TYPE="hidden" NAME=accion VALUE=suscribir>
<span class="menu">&gt;&gt;Email:</span> <BR>
<INPUT TYPE="Text" NAME="email" SIZE=15>
<BR>
<INPUT TYPE="submit" style="BORDER-RIGHT: black 1px solid; BORDER-TOP: black 1px solid; FONT-SIZE: 11px; BORDER-LEFT: black 1px solid; COLOR: black; BORDER-BOTTOM: black 1px solid; FONT-FAMILY: verdana; BACKGROUND-COLOR: white" VALUE="Suscribir">
</strong></div>
</FORM>



ese es el formulario
__________________
Animacion de cumpleaños
  #2 (permalink)  
Antiguo 11/05/2003, 20:44
Avatar de drcyber  
Fecha de Ingreso: julio-2002
Mensajes: 826
Antigüedad: 22 años, 3 meses
Puntos: 2
Hola Sebastian.

Pones esto al principio de tu script junto con las demás funciones:

Código PHP:
function comprobar_mail($mail) {
if (!
ereg("^([a-zA-Z0-9._]+)@([a-zA-Z0-9.-]+).([a-zA-Z]{2,4})$",$mail)) {
    
$Evalido false;
} else {
    
$Evalido true;
}

Luego modificas esta parte de tu code:

Código PHP:
//Si Vamos A Agregar Un Nuevo Usuario.
if($accion == "suscribir")
{
        //Conectamos Con La Base De Datos.
        $link=ConectarseBaseDatos();
        $result = mysql_query("SELECT Email FROM listaCorreo WHERE Email='$email'",$link);
        if($row = mysql_fetch_array($result)) {    ?>
            <SCRIPT LANGUAGE="javascript">
            alert("EMAIL YA EXISTENTE EN LA LISTA DE CORREO");
            top.location = "<? echo "$direccionWeb"?>";
            </SCRIPT>
            <?
        
} else {
                    
comprobar_mail($_POST['email']);
                    if (
$Evalido == true) {
                        
//Guardaremos La Informacion En La Tabla De listaCorreo Temporales.
                
mysql_query("insert into listaCorreo (Email) values ('$email')",$link);
    
                
//Direccion Para Borrarse De La Lista De Correo
                
$direccionBorrarEmail  "$direccionScript";
                
$direccionBorrarEmail .= "listaCorreo.php?accion=cancelar&email=$email";

                
//Enviamos El Email Al Usuario Informandole Que Ha Sido Suscrito.
                
mail($email"Suscripcion Lista De Correo""Hola!,\n\nEste Email Es Generado Automaticamente Para Informarte Que Estas Has Sido Suscrito A La Lista De Correo De $direccionWeb.\n\n$firma\nEsta Suscripcion Es Voluntaria, Y Su Correo Electronico Puede Ser Sacado De La Lista En Cualquier Momento Con Solo Dar Click En El Siguiente Enlace:\n$direccionBorrarEmail","FROM: $nombre <$emailWebmaster>");

                
//Direccion Administrar Lista
                
$direccionAdministrarLista  "$direccionScript";
                
$direccionAdministrarLista .= "listaCorreo.php?accion=administrar";

                
//Informamos al Webmaster Que Tenemos Un Nuevo Usuario De La Lista De Correo.
                
mail($emailWebmaster"Nueva Suscripcion Lista De Correo""Hola!,\n\nUn Nuevo Usuario Cuyo Email Es: $email, Se Ha Suscrito A La Lista De Correo.\n\nRecueda Que En Cualquier Momento Puedes Dirigirte A La Seccion De Administracion Con Solo Dar Click En El Siguiente Enlace:\n$direccionAdministrarLista\n\n$firma\n\nSi Deseas Borrar Esta Persona Directamente Da Click En El Siguiente Enlace:\n$direccionBorrarEmail","FROM: $nombre <$emailWebmaster>");
                        
?>
                        <SCRIPT LANGUAGE="javascript">
                        alert("Su Email A Sido Suscrito, En Pocos Minutos Recibira Confirmacion En Su Casilla De Correo Electronico, Ahora Sera Dirigido A La Pagina Principal De Nuevo");
                        top.location = "<? echo "$direccionWeb"?>";
                        </SCRIPT>
                        <?
                
} else {
                        <
SCRIPT LANGUAGE="javascript">
            
alert("EL EMAIL PROPORCIONADO NO ES VALIDO");
            
top.location "<? echo "$direccionWeb"; ?>";
            
</SCRIPT>
                    }
                //Liberamos La Memoria, Cerramos La Conexion Con La Base De Datos.
                  mysql_free_result($result);
                mysql_close($link);
                }
Saludos !
__________________
Dr. Cyber
Ingeniarte.com
(soy el mismo Takitei)
  #3 (permalink)  
Antiguo 11/05/2003, 20:45
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 10 meses
Puntos: 129
Esa función es una función PHP .. así que el fomulario aquí no interviene para nada ..

Esa función te devuelte "true/false" según la sintax del e-mail sea correcta o no ..

Su uso sería algo así: (en tu listaCorreo.php)

Código PHP:
if (!comprobar_mail($_POST['email']){
  echo 
"el e-mail no es correcto ... ";
  exit;

El ejemplo, muestra el mensaje de error y termina la ejecución del script .. Lo ideal sería que redireccionara a tu formulario y le pasase una variable de control que indique que el proceso no ha sido correcto y por ende que repita sus datos ..

El redireccionamento lo puedes hacer via cabeceras "location" del HTTP:

header("location: formulario.tal?codigo=error");
exit;

Y en tu formulario (ahora deberá ser .php .. obvio ..):

Código PHP:
if (isset($_GET['codigo'])){

   if (
$_GET['codigo']=="error"{
      echo 
"Hay un error en tu dirección de e-mail .. bla bla bla";
   }


Y en tu formulario .. usa el method!!!! .. (y respeta las comillas donde correspondan).

Código PHP:
<FORM ACTION="listaCorreo.php" method="post"
Revisa en el manual de PHP el uso de funciones .. y si quieres usar lo del "header()" .. mira tambien como usarlo .. pues te va a dar problemas con "cabeceras enviadas" si no lo usas correctamente ...

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #4 (permalink)  
Antiguo 11/05/2003, 21:11
Avatar de drcyber  
Fecha de Ingreso: julio-2002
Mensajes: 826
Antigüedad: 22 años, 3 meses
Puntos: 2
Cierto lo que dice Cluster, usa el "method" en el formulario, eso es bien importante.

Otra cosita, un buen detalle:

Trata de usar los arrays superglobales para utilizar las variables de tus formularios, eso evitará los muy comunes agujeros de seguridad. En www.php.net hay información al respecto pero hasta donde yo sé unicamente en inglés.

http://www.php.net/manual/sk/languag...les.predefined

Saludos y suerte.
__________________
Dr. Cyber
Ingeniarte.com
(soy el mismo Takitei)
  #5 (permalink)  
Antiguo 11/05/2003, 21:15
 
Fecha de Ingreso: diciembre-2002
Ubicación: Santiago de Chile
Mensajes: 350
Antigüedad: 21 años, 11 meses
Puntos: 0
me sale este error

Parse error: parse error, unexpected '<' in /home2/payasada/public_html/listaCorreo.php on line 150




y la linea 150 contiene lo siguiente:

<SCRIPT LANGUAGE="javascript">
alert("EL EMAIL PROPORCIONADO NO ES VALIDO");
top.location = "<? echo "$direccionWeb"; ?>";
</SCRIPT>
__________________
Animacion de cumpleaños
  #6 (permalink)  
Antiguo 11/05/2003, 21:22
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 10 meses
Puntos: 129
blackseba .. y mirastes a que puede ser debído?

fijate como colorea el código el própio mensaje .. ves algo "raro"? .. sigue los <? y los ?> .. ahí le faltan ..

Intenta aprender a leer de que se tratan los errores que te "manda" PHP ...

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #7 (permalink)  
Antiguo 11/05/2003, 21:29
 
Fecha de Ingreso: diciembre-2002
Ubicación: Santiago de Chile
Mensajes: 350
Antigüedad: 21 años, 11 meses
Puntos: 0
si eso fue lo que hice cerrando los php y volviendolos a abrir pero me sale otro error


mira asi lo deje



Código PHP:
<?
                
} else {
                        
?><SCRIPT LANGUAGE="javascript">
            alert("EL EMAIL PROPORCIONADO NO ES VALIDO");
            top.location = "<? echo "$direccionWeb"?>";
            </SCRIPT><?
                    
}
                
//Liberamos La Memoria, Cerramos La Conexion Con La Base De Datos.
                  
mysql_free_result($result);
                
mysql_close($link);

asi deje el codigo pero si lo dejo asi me da el siguiente error

Parse error: parse error, unexpected T_ELSE in /home2/payasada/public_html/listaCorreo.php on line 161


y en esa linea esta esto


else if($accion == "cancelar")
__________________
Animacion de cumpleaños
  #8 (permalink)  
Antiguo 11/05/2003, 21:32
Avatar de drcyber  
Fecha de Ingreso: julio-2002
Mensajes: 826
Antigüedad: 22 años, 3 meses
Puntos: 2
Whoops! ese fue error mio:

Quedaría asi:

Código PHP:
} else { ?>
    <SCRIPT LANGUAGE="javascript">
    alert("EL EMAIL PROPORCIONADO NO ES VALIDO");
    top.location = "<? echo "$direccionWeb"?>";
    </SCRIPT>
<?php }
Prueba a ver.
__________________
Dr. Cyber
Ingeniarte.com
(soy el mismo Takitei)
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 14:15.