Foros del Web » Programando para Internet » PHP »

PHP-mySQL (comprobar datos)

Estas en el tema de PHP-mySQL (comprobar datos) en el foro de PHP en Foros del Web. Hola a todos y antes que nada queria agradecerles por las tantas veces que leyendo por estos lados, pude sacarme muchas dudas. Ahora se me ...
  #1 (permalink)  
Antiguo 27/05/2004, 19:49
 
Fecha de Ingreso: mayo-2004
Ubicación: Argentina
Mensajes: 126
Antigüedad: 19 años, 10 meses
Puntos: 1
PHP-mySQL (comprobar datos)

Hola a todos y antes que nada queria agradecerles por las tantas veces que leyendo por estos lados, pude sacarme muchas dudas.

Ahora se me presenta el siguiente y aunque busco y busco, no logro solucionarlo.

Hice un script para envio de emails que presenta 4 campos desde un formulario normal.
Cuando se tipea un email o todos quería que se fije en una base de datos, tabla "noenviar", y si dicho email esta en esa tabla que no me mande el mail.
Si no hay coincidencia, que me mande un mensaje a ese email y que me guarde ese email en un tabla "enviados".

Intente de la siguiente forma:
Código PHP:
<?php
if (!$smetell) { ?>
<form  name="recomendacion" method="post" action="<? echo $PHP_SELF ?>">
<input name="email_recive1" type="text" id="nome_envia" size="30">
<input name="email_recive2" type="text" id="email_send" size="30">
<input name="email_recive3" type="text" id="email_send" size="30">
<input name="email_recive4" type="text" id="email_send" size="30">
  <input type="hidden" name="smetell">
<input name="submit" type="submit" class="box" value="submit">
 </form>
 
<?php } else {
 if (!
$email_recive1 and !$email_recive2 and !$email_recive3 and !$email_recive4)
{die (
"No se indico NINGUN e-mail de destino");}

if (
$email_recive1){ if (!eregi("^[_\.0-9a-z-]+@([0-9a-z][0-9a-z-]+\.)+[a-z]{2,6}$","$email_recive1"))
{die (
"El E-mail 1 No es Correcto!");}    }

if (
$email_recive2){ if (!eregi("^[_\.0-9a-z-]+@([0-9a-z][0-9a-z-]+\.)+[a-z]{2,6}$","$email_recive2"))
{die (
"El E-mail 2 No es Correcto!");}    }

if (
$email_recive3){ if (!eregi("^[_\.0-9a-z-]+@([0-9a-z][0-9a-z-]+\.)+[a-z]{2,6}$","$email_recive3"))
{die (
"El E-mail 3 No es Correcto!");}    }

if (
$email_recive4){ if (!eregi("^[_\.0-9a-z-]+@([0-9a-z][0-9a-z-]+\.)+[a-z]{2,6}$","$email_recive4"))
{ die (
"El E-mail 4 No es Correcto!");}    }
    
mysql_connect('127.0.0.1''root''root');
$noenviar=mysql_db_query("embolsado","select email from noenviar");
$comprobar=mysql_fetch_array($noenviar);
if (
$comprobar==$email_recive1){ $email_recive1="este usuario no desea recibir recomendaciones del sitio";}    
    else {
$enviado1=mail("$email_recive1""$subject","
<FONT face=Tahoma, Arial, Helvetica, sans-serif><b>$name_recive:</b></font><BR>
$send_recive<BR><BR>"
,"From: $name_send <$email_send> \nMime-Version: 1.0\nContent-Type: text/html; charset=ISO-8859-1\nContent-Transfer-Encoding: 7bit");
} if (
$comprobar==$email_recive2){ $email_recive2="este usuario no desea recibir recomendaciones del sitio";}    
    else {
$enviado2=mail("$email_recive2""$subject","
<FONT face=Tahoma, Arial, Helvetica, sans-serif><b>$name_recive:</b></font><BR>
$send_recive<BR><BR>"
,"From: $name_send <$email_send> \nMime-Version: 1.0\nContent-Type: text/html; charset=ISO-8859-1\nContent-Transfer-Encoding: 7bit");
} if (
$comprobar==$email_recive3){ $email_recive3="este usuario no desea recibir recomendaciones del sitio";}    
    else {
$enviado3=mail("$email_recive3""$subject","
<FONT face=Tahoma, Arial, Helvetica, sans-serif><b>$name_recive:</b></font><BR>
$send_recive<BR><BR>"
,"From: $name_send <$email_send> \nMime-Version: 1.0\nContent-Type: text/html; charset=ISO-8859-1\nContent-Transfer-Encoding: 7bit");
} if (
$comprobar==$email_recive4){ $email_recive4="este usuario no desea recibir recomendaciones del sitio";}    
    else {
$enviado4=mail("$email_recive4""$subject","
<FONT face=Tahoma, Arial, Helvetica, sans-serif><b>$name_recive:</b></font><BR>
$send_recive<BR><BR>"
,"From: $name_send <$email_send> \nMime-Version: 1.0\nContent-Type: text/html; charset=ISO-8859-1\nContent-Transfer-Encoding: 7bit");
}

if (!
$enviado1)   { $enviado1="No enviado";} else { mysql_connect('127.0.0.1''root''root');
$sql=mysql_db_query("embolsado","insert into enviado (nombre, email, fecha, recomendado) values ('$nombre1', '$email_recive1', '$date', '1')");
    } 
 if (!
$enviado2)   { $enviado2="No enviado.";} else { mysql_connect('127.0.0.1''root''root');
$sql=mysql_db_query("embolsado","insert into enviado (nombre, email, fecha, recomendado) values ('$nombre2', '$email_recive2', '$date', '1')");
    } 
 if (!
$enviado3)   { $enviado3="No enviado."$grabado3="no Grabado";} else { mysql_connect('127.0.0.1''root''root');
$sql=mysql_db_query("embolsado","insert into  enviado (nombre, email, fecha, recomendado) values ('$nombre3', '$email_recive3', '$date', '1')");
    } 
  if (!
$enviado4)   { $enviado4="No enviado.";} else { mysql_connect('127.0.0.1''root''root');
$sql=mysql_db_query("embolsado","insert into  enviado (nombre, email, fecha, recomendado) values ('$nombre4', '$email_recive4', '$date', '1')");
    }  

 else { echo 
"
    <table width=\"100%\" cellpadding=\"2\"><tr>
     <td width=\"40%\" height=\"21\" valign=\"top\"><b>
    Las recomendaciones fueron enviadas a las siguientes direcciones</b>
    </tr><tr>
      <td height=\"24\" valign=\"top\">
                  <h4>$email_recive1</h4>
    <h4>$email_recive2</h4>
    <h4>$email_recive3</h4>
    <h4>$email_recive4</h4>"
;}
}
?>

Última edición por Cluster; 28/05/2004 a las 07:10
  #2 (permalink)  
Antiguo 28/05/2004, 07:13
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Pero .. sin concretas (además de colorear el código con la opción "PHP") el problema que tengas podrémos ir más rápido para resolverlo que estudiar (y probar¿?) completamente tu código ..

Un saludo,
  #3 (permalink)  
Antiguo 28/05/2004, 07:19
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Otro comentario ..

Para trabajar con variables de un formulario (campos) que tengan cierta relación (grupo) .. como por ejemplo tu "mail_x" .. puedes usar:

name="mail[]" (en el nombre del campo de fomulario)

Así en PHP recibiras un array que puedes trabajar (y acceder) con algún bucle tipo:

Código PHP:
foreach($_POST['mail'] as $mail){
// aquí procesas a cada iteracción $mail

Así optimizas el código y lo haces más versatil si cabe (para N opciones que debas pedir .. en tu caso "mail's")

Un saludo,

PD: Hay una FAQ de este foro PHP que trata el tema con un ejemplo... revisalas.
  #4 (permalink)  
Antiguo 01/06/2004, 00:37
 
Fecha de Ingreso: mayo-2004
Ubicación: Argentina
Mensajes: 126
Antigüedad: 19 años, 10 meses
Puntos: 1
Gracias por la respuesta y Si.. no fui claro a lo que me refería.. :)

De tanto buscar en las FAQ's de PHP como me indicaste encontre varias cosillas que modifique y logre lo que necesitaba!! :)
Por otra parte, me surgio la siguiente duda:
Si bien en vez de escribir 4 sentencias para los 4 cuatro campos del formulario, uso
foreach ($_POST['email_recive'] as $mail) { sencias }

Como hago si además del email, necesito un campo donde se introduce un nombre?

Esta vez la hago mas clara:
2 campos nombre y 2 email. > Submit > Se procesa en formulario de forma tal que si el email ya existe en la tabla noenviar, no envia email. Ahora, si no hay coincidencias, envia un mail al email indicado y se GRABA en otra tabla, enviados, el nombre de la persona ( sacado del formulario) y su email.

Intente pedirle las 2 variables dentro del foreach y que las guarde como $mail y $nombre, pero nada.

Alguna idea?
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 17:27.