Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] enviar un FORM a destinatarios de una DB

Estas en el tema de enviar un FORM a destinatarios de una DB en el foro de PHP en Foros del Web. Hola No tengo mucha experiencia en MySQL Tengo que poder enviar desde un FORM texto y arch. adjuntos a todos los destinatarios que están en ...
  #1 (permalink)  
Antiguo 18/07/2014, 15:50
 
Fecha de Ingreso: abril-2008
Mensajes: 29
Antigüedad: 16 años
Puntos: 0
enviar un FORM a destinatarios de una DB

Hola
No tengo mucha experiencia en MySQL

Tengo que poder enviar desde un FORM texto y arch. adjuntos a todos los destinatarios que están en una DB.

He buscado en la red, y sólo he podido enviar texto (del campo de text) necesito enviar adjuntos.

Si tienen un ejemplo o algo genérico se los agradeceré

Grs
  #2 (permalink)  
Antiguo 19/07/2014, 09:36
 
Fecha de Ingreso: noviembre-2008
Ubicación: Cochabamba Bolivia
Mensajes: 519
Antigüedad: 15 años, 5 meses
Puntos: 26
Respuesta: enviar un FORM a destinatarios de una DB

Justo un poco mas despues de ti acaba de publicar algo aqui un amigo:
http://www.forosdelweb.com/f18/email...mailer-802356/

Saludos.
  #3 (permalink)  
Antiguo 19/07/2014, 11:13
Avatar de bookmaster  
Fecha de Ingreso: febrero-2002
Ubicación: Toledo
Mensajes: 976
Antigüedad: 22 años, 2 meses
Puntos: 67
Respuesta: enviar un FORM a destinatarios de una DB

Fido si te fijas es el mismo iggytosan que a reabierto un post de hace 4 años.
__________________
Decir si te a funcionado la respuesta es ¡GRATIS!. Por favor indicarlo.
http://www.lohacemosweb.net
http://tutoriales.lohacemosweb.net
  #4 (permalink)  
Antiguo 21/07/2014, 11:54
 
Fecha de Ingreso: abril-2008
Mensajes: 29
Antigüedad: 16 años
Puntos: 0
Respuesta: enviar un FORM a destinatarios de una DB

Hola

Gracias por la resp. pero no pude solucionar nada. :(

El problema es que no tengo mucha idea de PHP y MySQL, y cómo hay cientos de lib free en Inet tal vez alguien tenga una URL con algo ya solucionado.
No busco nada complejo.
Gracias
  #5 (permalink)  
Antiguo 21/07/2014, 13:33
 
Fecha de Ingreso: octubre-2010
Ubicación: España
Mensajes: 1.007
Antigüedad: 13 años, 6 meses
Puntos: 123
Respuesta: enviar un FORM a destinatarios de una DB

Pero que necesitas, enviarlos por correo?
tu problema es al procesar el form, al crearlo, al añadir el adjunto?
como estas intentando hacerlo?
  #6 (permalink)  
Antiguo 22/07/2014, 16:54
 
Fecha de Ingreso: abril-2008
Mensajes: 29
Antigüedad: 16 años
Puntos: 0
Respuesta: enviar un FORM a destinatarios de una DB

Hola

He logrado enviar adjuntos a direcciones que están en una DB MySQL
He logrado que sean BCC

No pude lograr:

Que en el while de envio no repita direcciones
cerrar la DB al terminar donde lo ponga siempre da error

Gracias si alguien me puede ayudar en lo que no logro

Código PHP:
Ver original
  1. <?php
  2. /*
  3. este formulario utiliza la clase PHPMailer para el envio y proceso.
  4. Es solo un ejemplo de una posible implementacion de PHPMailer
  5. La clase se puede descargar desde http://phpmailer.sourceforge.net/
  6. Junto con mas ejemplos y documentacion.
  7. */
  8.  
  9. /*
  10. NOTA:
  11. este archivo debe estar acompañado de una carpeta
  12. con el nombre "archivos" en donde se copiaran los
  13. archivos. Esta carpeta debe tener chmod 777.
  14. */
  15.  
  16. //CONFIGURACION
  17. $direccion_envio='@gmail.com';                      //la direccion a la que se enviara el email.
  18. $url='http://www..com.ar/cias/archivos';        //la URL donde esta publicado el formulario. SIN la barra al final
  19.  
  20. //FIN CONFIGURACION
  21. ?>
  22.  
  23.  
  24. <?php
  25. //proceso del formulario
  26. // si existe enviar...
  27. if (isset ($_POST['enviar'])) {
  28.  
  29. //vamos a hacer uso de la clase phpmailer,
  30. require("class.phpmailer.php");
  31.  
  32. $mail = new PHPMailer();
  33.  
  34. //recogemos las variables y configuramos PHPMailer
  35. $mail->From = $_POST['email'];
  36. $mail->FromName = $_POST['nombre'];
  37. $mail->AddAddress($direccion_envio);
  38. $mail->Subject = "asunto";
  39. $mail->AddReplyTo($_POST['email'],$_POST['nombre']);
  40. $mail->IsHTML(true);                              
  41. $comentario=$_POST['comentario'];
  42.  
  43. //comprobamos si se adjunto un archivo, y si su tamano es menor al permitido
  44. if (isset($_FILES['archivo']['tmp_name']) && ($_FILES['archivo']['tmp_name']!="") ) {
  45.     $aleatorio = rand();
  46.     $nuevonombre=$aleatorio.'-'.$_FILES['archivo']['name'];
  47.     // copiamos el archivo en el servidor
  48.     copy($_FILES['archivo']['tmp_name'],'archivos/'.$nuevonombre);
  49.     $conarchivo = "Su archivo ha sido adjuntado con &eacute;xito<br />";
  50. }
  51.  
  52.  
  53. //armamos el html
  54. $contenido = '<html><body>';
  55. $contenido .= '<h2>' .$_POST['titulo'] .'</h2>';
  56. $contenido .= '<p>Enviado el '.date("d M Y").'</p>';
  57. $contenido .= '<hr />';
  58. //$contenido .= '<p>Nombre: <strong>'.$_POST['nombre'].'</strong>';
  59. //$contenido .= '<p>Email: <strong>'.$_POST['email'].'</strong>';
  60. if (isset($_FILES['archivo']['tmp_name'])) {
  61.     $contenido .= '<p>Archivo: <strong><a href="'.$url.'/archivos/'.$nuevonombre.'">'.$nuevonombre.'</a> (formato:'.$ext.' - '.$tamano.' bytes)</strong>';
  62. }
  63. $contenido .= '<p>Mensaje: <strong>'.$comentario.'</strong>';
  64. $contenido .= '<hr />';
  65. $contenido .= '</body></html>';
  66.  
  67. $mail->Body    = $contenido;
  68. $mail->AddAttachment('archivos/'.$nuevonombre.'', $nuevonombre);  // optional name
  69. //  enviamos el mail
  70.  
  71.  $conectar=mysql_connect('localhost','correo','********') or die('No se puedo conectar con la base de datos!');
  72.  
  73.    mysql_select_db('correo',$conectar);
  74.    
  75.   $basededatos = "select email from cf ";
  76.   $resultado = mysql_query($basededatos,$conectar) or die(mysql_error());
  77.   //coloca en resultados cada contenido de la línea de la columna email de la tabla cf
  78.  
  79. while ($filas = mysql_fetch_array($resultado)) {
  80. $email = $filas['email'];
  81. // acá se supone que envia un mail con CO hasta que se acaba, pero me envía repetidos (hasta 3 mails a la misma dirección)
  82. $mail->AddBcc($email);
  83. $mail->Send();
  84.  
  85.  
  86. }
  87.  
  88. $flag='ok';
  89. $mensaje='<div id="ok">'.$conarchivo.'Mensaje Enviado con EXITO'.'</div>' ;
  90.  
  91. }
  92.  
  93.  
  94. ?>
  95.  
  96. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
  97.     "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  98. <html xmlns="http://www.w3.org/1999/xhtml">
  99.     <head>
  100.         <meta http-equiv="content-type" content="text/html; charset=utf-8" />
  101.         <title>CIAS - Formulario de Envios</title>
  102.  
  103. <style>
  104.     body {
  105.         font: 1em Lucida Grande, 'Trebuchet MS', verdana, sans-serif;
  106.         font-size: 76%;}
  107.        
  108.     #form {
  109.         border: 3px double #eaeaea;
  110.         background-color: #AAF;
  111.         padding: 1em;
  112.         width: 30em;
  113.         margin: auto;}
  114.  
  115.     #form h2{
  116.         font-size: 2em;
  117.         margin: 0 0 0.5em 0;
  118.         padding: 0;}
  119.  
  120.     #form .campo {
  121.         border: 1px solid #999;
  122.         padding: 0.1em;
  123.         font-size: 14px;}
  124.  
  125.     #form .error {
  126.         border: 1px solid #F00;
  127.         padding: 0.3em;
  128.         font-size: 1.5em;}
  129.  
  130.     #form .com {
  131.         border: 1px solid #999;
  132.         padding: 0.3em;
  133.         font-size: 1.5em;
  134.         width:18em;
  135.         height: 10em;
  136.         font: 1.5em Arial, Helvetica,  verdana, sans-serif;}
  137.  
  138.     #form .com-error {
  139.         border: 1px solid #F00;
  140.         padding: 0.3em;
  141.         font-size: 1.2em;
  142.         width:18em;
  143.         height: 10em;
  144.         font: 1.5em Lucida Grande, 'Trebuchet MS', verdana, sans-serif;}
  145.  
  146.     #form .boton {
  147.         border: 2px solid #999;
  148.         padding: 0.3em;
  149.         font-size: 1.2em;
  150.         width: 4em;}
  151.        
  152.     #error {
  153.         border: 1px dashed #F00;
  154.         background-color: #FFF;
  155.         padding: 5px;}
  156.  
  157.     #ok {
  158.         border: 1px dashed #060;
  159.         background-color:#FFF;
  160.         padding: 5px;}
  161.            
  162. </style>
  163.  
  164.     </head>
  165. <body>
  166.     <div id="form">
  167.        
  168.         <h2>Formulario de Envios</h2>
  169.  
  170.         <?php echo $mensaje; /*mostramos el estado de envio del form */ ?>
  171.         <?php if ($flag!='ok') { ?>
  172.         <form action="<?php echo $PHP_SELF;?>" method="post" enctype="multipart/form-data">
  173.             <p>Título <br />
  174.             <input name="titulo" type="text" class="campo" size="50" /></p>
  175.    
  176.             <p>Email <br />
  177.             <input name="email" type="text" class="campo" value="[email protected]" readonly="readonly" /></p>
  178.  
  179.  
  180.             <p>Subir Archivo<br />(Formatos permitidos: .todos) <br />
  181.             <input type="file" name="archivo" class="campo" /></p>
  182.        
  183.             <p>Comentario <br />
  184.             <textarea name="comentario" class="com"></textarea></p>
  185.            
  186.             <input name="nombre" type="hidden" value="Popurri" />
  187.             <p><input class="boton" type="submit" name="enviar" value="enviar" /></p>
  188.         </form>
  189.         <?php } ?>
  190.     </div> <!-- end form-->
  191.    
  192. </body>
  193. </html>
  #7 (permalink)  
Antiguo 23/07/2014, 01:41
 
Fecha de Ingreso: octubre-2010
Ubicación: España
Mensajes: 1.007
Antigüedad: 13 años, 6 meses
Puntos: 123
Respuesta: enviar un FORM a destinatarios de una DB

Cita:
Iniciado por iggytosan Ver Mensaje
Hola

He logrado enviar adjuntos a direcciones que están en una DB MySQL
He logrado que sean BCC

No pude lograr:

Que en el while de envio no repita direcciones
cerrar la DB al terminar donde lo ponga siempre da error

Gracias si alguien me puede ayudar en lo que no logro
Donde se repiten los mail?
Se repiten por que estan duplicados en tu bd, o porque el bucle los duplica.

si no recuerdo mal, phpmailer admitia varias direcciones separadas por comas, prueba asi
Código PHP:
Ver original
  1. $email='';
  2.     while ($filas = mysql_fetch_array($resultado)) {
  3.     $email .= $filas['email'].',';
  4.     }
  5.     $mail->AddBcc($email);
  6.     $mail->Send();

si puedes mostrar el error que te da al cerrar la conexion. a ver que est psndo.
  #8 (permalink)  
Antiguo 23/07/2014, 12:52
 
Fecha de Ingreso: abril-2008
Mensajes: 29
Antigüedad: 16 años
Puntos: 0
Respuesta: enviar un FORM a destinatarios de una DB

Gracias xerifandtomas

La repetición la hacía el while, dentro del lazo estaba el $mail->Send() y se ve que no está preparado, porque repetía el envío a cada dirección. Ahora está funcionando con una lista separada con comas.

Pregunta: Tenes idea cuántas direcciones BCC soportará PHPMailer????

Acá está el msg que tira cuando quiero cerrar la DB... No importa dónde lo ponga. Tal vez los parámetro que le doy no sean correctos?
Viendo mi ejemplo, cómo y dónde la cerrarías?

Gracias

Código HTML:
Ver original
  1. Warning: mysql_close() expects at most 1 parameter, 2 given in /home/.....
  #9 (permalink)  
Antiguo 23/07/2014, 12:55
Avatar de Patriarka  
Fecha de Ingreso: enero-2011
Ubicación: Moreno, Buenos Aires, Argentina
Mensajes: 2.851
Antigüedad: 13 años, 3 meses
Puntos: 288
Respuesta: enviar un FORM a destinatarios de una DB

para enviar archivos mejor usa PHPMAILER
hay miles y miles de ejemplos funcionando en la web
  #10 (permalink)  
Antiguo 23/07/2014, 17:04
 
Fecha de Ingreso: abril-2008
Mensajes: 29
Antigüedad: 16 años
Puntos: 0
Respuesta: enviar un FORM a destinatarios de una DB

Cita:
Iniciado por Patriarka Ver Mensaje
para enviar archivos mejor usa PHPMAILER
hay miles y miles de ejemplos funcionando en la web
Es lo que uso... Ya lo solucioné. Gracias

Etiquetas: form, mysql
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 02:04.