Foros del Web » Programando para Internet » PHP »

Un detalle a solucionar para mi script!

Estas en el tema de Un detalle a solucionar para mi script! en el foro de PHP en Foros del Web. Estimados amigos, tengo un problema y necesito de vuestra ayuda. Este script envia correos a los registrados que obtengo de un reporte TXT y los ...
  #1 (permalink)  
Antiguo 15/09/2004, 11:06
Avatar de libiob  
Fecha de Ingreso: julio-2003
Ubicación: Lima
Mensajes: 125
Antigüedad: 20 años, 9 meses
Puntos: 1
Exclamación Un detalle a solucionar para mi script!

Estimados amigos, tengo un problema y necesito de vuestra ayuda.
Este script envia correos a los registrados que obtengo de un reporte TXT y los cargo a la Web desde un formulario, todo va ok hasta que hace el envio, como comento en el script, envia al primero bien su correo, al segundo le envia 2 diseños en 1 solo correo con datos del 1ro y el que le corresponde, y asi sucesivamente.
El diseño del mail necesariamente lo tengo que poner donde se encuentra ya que debe capturar el nombre, empresa , etc de cada envio.
La estructura del txt es el siguiente:
Prueba.TXT
----------------------------------------------
Pais; Numero PIN; Empresa; Nombres; [email protected]
Pais; Numero PIN; Empresa; Nombres; [email protected]
Pais; Numero PIN; Empresa; Nombres; [email protected]
----------------------------------------------

Espero se me entienda, aqui pongo el script, se de su valiosa ayuda ya que anteriormente la he recibido.

Código PHP:
<?
  $fname
="Prueba.txt";  //leemos el fichero
  
$fp=fopen($fname,"r") or die("Error al abrir el Reporte");
  
$line fgets$fp4096 );
  
$db_link mysql_connect("localhost","usua","pass");   //iniciamos conexion a bbdd
  
if ($db_link)
       { 
           @
mysql_select_db('basedatos');
         }
         else
         {
         echo 
"Error de conexion!";
         }
    
$i=1;
    
$link=conectarse();
    
$asunto="Asunto mail";//Asunto del Mail
    
$encabezados  "MIME-Version: 1.0\n";//Cabezera
    
$encabezados .= "Content-type: text/html; charset=iso-8859-1\n";//Cabezera
    
$encabezados .= "From: Nombre <[email protected]>\n";//Cabezera
    
$encabezados .= "X-Sender: <[email protected]>\n";//Cabezera
    
$encabezados .= "X-Mailer: PHP\n";//Cabezera
    
$encabezados .= "X-Priority: 3\n";//Cabezera
    
$encabezados .= "Return-Path: Nombre <[email protected]>\n";//Cabezera
  
while(!feof($fp))
     {
                if(
$_POST[AC]=="ADD")//Se ejecuta si se añade registros, este valor de la condicion viene despues del formulario de carga
                
{
        list(
$Country,$PIN,$Empresa,$Name,$Email) =split";"$line);//capturamos el contenido del TXT y separamos los valores que esten en ";"
                
$line fgets$fp4096 );
              
$result=mysql_query("INSERT INTO Tabla (Country,PIN,Empresa,Name,Email)values('$Country','$PIN','$Empresa','$Name','$Email')",$link); //Cargamos la info a la base de datos
                
$v=$i++;//Cuenta los envios
                
include "Disenodelmail.html";//Aqui el diseño del mail, este contiene datos de cada dato registrado y es enviado a su mail.
                //Aqui el problema, envia al primero bien, al segundo le envia tambien del primero y asi si hay un 5to le enviara desde el 1ro al 5to
                //necesariamente debe estar el mail aqui porque captura los datos de cada persona del archivo Prueba.TXT
                
$ACcion=mail($Email$asunto$mensaje$encabezados);
                }
                else
// Aqui ejecutamos si se trata de actualizar Registros
                
{
        list(
$Country,$PIN,$PIN_S,$Empresa,$Name,$DI,$Email) =split";"$line);//
        
$line fgets$fp4096 );
                
$result=mysql_query("UPDATE globalcard SET Country='$Country',DI='$DI',PIN='$PIN',PIN_S='$PIN_S',Name='$Name',Empresa='$Empresa' where DI='$DI'",$link);//
                
$v=$i++;// Cuenta los envios
                
include "ModelMail1.php";
                
$ACcion=mail($Email$asunto$mensaje$encabezados);
                }
         }
     if(
$ACcion==true){echo"<li>Se enviarón los correos correctamente";}else{echo"<li><b><font color=\"#ff0000\">Error en el envio de correos!</font></b>";}
         if(
$result==true)
         {
         echo
"<li>Se cargar&oacute;n o actualizar&oacute;n  <b>$v</b> nuevos registros con Exito";
         }
         else
         {
         echo
"<li><b><font color=\"#ff0000\">No se cargar&oacute;n o actualizar&oacute;n los <b>$v</b> nuevos registros!</font></b>";
         }
  
fclose($fp);
    
mysql_close($link);
?>
De antemano agradesco vuestra ayuda y tiempo.

Saludos.

Libio Balbin

Última edición por libiob; 15/09/2004 a las 11:29
  #2 (permalink)  
Antiguo 15/09/2004, 12:16
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 21 años, 10 meses
Puntos: 16
Hola,

El problema esta donde defines/das valor a la variable $mensaje. No lo veo en el codigo que has puesto, intuyo que estara en "Disenodelmail.html" (codigo PHP con extension .html muy mala idea). E imagino que ahi usas el . para concatenar. Si es asi, el problema sera que concatenas $mensaje con el el contenido previo de esa variable (en plan $mensaje.= ). Ese es el problema.

Saludos.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #3 (permalink)  
Antiguo 15/09/2004, 13:27
Avatar de libiob  
Fecha de Ingreso: julio-2003
Ubicación: Lima
Mensajes: 125
Antigüedad: 20 años, 9 meses
Puntos: 1
Perdon el nombre solo es referencial (el diseño es de extension PHP sorry), pero si tienes razon, mirando y mirando tambien cai en ese punto, solo le quite en el primer "$mensaje =" el punto antes del "=" y los demas si continuan ".=", ahora trabaja perfectamente, pensar que estuve desde ayer buscando otras soluciones cuando el detalle solo radicaba en un bendito "."

De todas maneras gracias amigo.

Saludos a todos.
  #4 (permalink)  
Antiguo 15/09/2004, 13:30
 
Fecha de Ingreso: septiembre-2004
Ubicación: La Plata Argentina
Mensajes: 128
Antigüedad: 19 años, 7 meses
Puntos: 9
¿porqué no armas el mensaje con strings en codigo PHP?

Saludos
  #5 (permalink)  
Antiguo 15/09/2004, 15:35
Avatar de Gerald  
Fecha de Ingreso: julio-2003
Mensajes: 1.356
Antigüedad: 20 años, 9 meses
Puntos: 2
http://www.php-hispano.net/archivos/FAQs/168

Debugea
__________________
Solo por Hoy: Trataré de fortalecer mi mente. Estudiaré y aprenderé algo útil
Hoteldipity
Arte Caracol
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 05:54.