Foros del Web » Programando para Internet » PHP »

enviar resultado de aplicacion por email.

Estas en el tema de enviar resultado de aplicacion por email. en el foro de PHP en Foros del Web. Disculpen mi ignorancia sobre algunos temas, pero he comenzado hace poco y son demasiados temas que hay que manejar, y sobre esto desconozco, me gustaria ...
  #1 (permalink)  
Antiguo 24/08/2006, 17:22
 
Fecha de Ingreso: octubre-2005
Mensajes: 405
Antigüedad: 12 años, 1 mes
Puntos: 1
enviar resultado de aplicacion por email.

Disculpen mi ignorancia sobre algunos temas, pero he comenzado hace poco y son demasiados temas que hay que manejar, y sobre esto desconozco, me gustaria me ayudasen:

tengo la siguiente resultado de la aplicación y lo que necesito es enviar esto mismo por email (obviamente que no el codigo, sino que lo que se ve atravez del navegador).

Código PHP:
<?
$folio
=$_REQUEST['fol'];
include(
"config.php");
$sql="select * from servicio where folio='$folio'";
$res=mysql_query($sql,$db) or die(mysql_error());
$reg=mysql_fetch_array($res);
$solicita=$reg['solicitado'];
$comentario=$reg['glosa'];
$asignado=$reg['asignado'];
$fsolicitado=$reg['f_solicitado'];
$a=explode('-',$fsolicitado);
$fsolicitud="$a[2]-$a[1]-$a[0]";
$detalle=$reg['detalle'];
$f_ingreso=$reg['f_solicitado'];
$i=explode('-',$f_ingreso);
$fingreso="$i[2]-$i[1]-$i[0]";
$festimada=$reg['f_estimada'];
$e=explode('-',$festimada);
$fprobable="$e[2]-$e[1]-$e[0]";
$ftermino=$reg['f_termino'];
?>
<html>
<head>
<title>Envio de Solicitud</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css">
<!--
input { font-family: Tahoma, Verdana, Arial; font-size: 11px; color: #000000; background-color: #CCCCCC; border: 1px #000000 solid}
select { font-family: Tahoma, Verdana, Arial; font-size: 11px; color: #FFFFFF; background-color: #6699CC; border: #000099; border-style: solid; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px}
-->
</style>
</head>

<body bgcolor="#FFFFFF" text="#000000" background="Imagenes/fondo3.jpg" topmargin="0">

<br>
<table width="100%" border="1" align="center" cellpadding="2" cellspacing="0" bordercolor="#003366">
  <tr> 
    <td width="100%" height="71" valign="top">
      <table width="100%" border="0" cellpadding="0" cellspacing="0">
        <tr> 
          <td width="162" height="65" valign="top"><img src="Imagenes/logo_indra.gif" width="160" height="65"></td>
          <td width="6"></td>
          <td width="622" valign="middle"> 
            <div align="center"><font size="5" face="Verdana, Arial, Helvetica, sans-serif">IMPRESION 
              DE SOLICITUD</font></div>
          </td>
          <td width="6"></td>
          <td width="135" valign="middle"><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Folio&nbsp;<b> 
            <? echo $folio?>
            </b></font> </td>
        </tr>
      </table>
    </td>
  </tr>
  <tr>
    <td>
      <table width="100%" border="1" cellspacing="0" cellpadding="2" bordercolor="#003366">
        <tr> 
          <td width="10%" bgcolor="#006666"> 
            <div align="center"><font size="1" face="Verdana, Arial, Helvetica, sans-serif" color="#FFFFFF">Solicitante</font></div>
          </td>
          <td width="43%" bgcolor="#006666"> 
            <div align="center"><font size="1" face="Verdana, Arial, Helvetica, sans-serif" color="#FFFFFF">Glosa</font></div>
          </td>
          <td width="8%" bgcolor="#006666"> 
            <div align="center"><font size="1" face="Verdana, Arial, Helvetica, sans-serif" color="#FFFFFF">Fecha</font></div>
          </td>
          <td width="15%" bgcolor="#006666"> 
            <div align="center"><font size="1" face="Verdana, Arial, Helvetica, sans-serif" color="#FFFFFF">Asignado 
              a</font></div>
          </td>
          <td width="8%" bgcolor="#006666"> 
            <div align="center"><font size="1" face="Verdana, Arial, Helvetica, sans-serif" color="#FFFFFF">F-Asignada</font></div>
          </td>
          <td width="8%" bgcolor="#006666"> 
            <div align="center"><font size="1" face="Verdana, Arial, Helvetica, sans-serif" color="#FFFFFF">F-Estimada</font></div>
          </td>
          <td width="8%" bgcolor="#006666"> 
            <div align="center"><font size="1" face="Verdana, Arial, Helvetica, sans-serif" color="#FFFFFF">F-Termino</font></div>
          </td>
        </tr>
        <tr> 
          <td width="10%"><font size="1" face="Verdana, Arial, Helvetica, sans-serif"><? echo $solicita?></font></td>
          <td width="43%"><font size="1" face="Verdana, Arial, Helvetica, sans-serif"><? echo $comentario?></font></td>
          <td width="8%"><font size="1" face="Verdana, Arial, Helvetica, sans-serif"><? echo $fsolicitud?></font></td>
          <td width="15%"><font size="1" face="Verdana, Arial, Helvetica, sans-serif"><? echo $asignado?></font></td>
          <td width="8%"><font size="1" face="Verdana, Arial, Helvetica, sans-serif"><? echo$fingreso?></font></td>
          <td width="8%"><font size="1" face="Verdana, Arial, Helvetica, sans-serif"><? echo$fprobable?></font></td>
          <td width="8%"><font size="1" face="Verdana, Arial, Helvetica, sans-serif"><? echo$fcierre?></font></td>
        </tr>
      </table>
    </td>
  </tr>
  <tr>
    <td height="100%"><br>&nbsp;<b><font color="#003333" size="2" face="Verdana, Arial, Helvetica, sans-serif">Detalle 
      de la Solicitud</font></b> 
      <table width="93%" border="1" align="center" cellpadding="2" cellspacing="0" bordercolor="#003366">
        <tr> 
          <td><font size="1" color="#000000" face="Verdana, Arial, Helvetica, sans-serif"><? echo $detalle?></font> 
          </td>
        </tr>
      </table>
      <br>
      &nbsp;<font color="#003333" face="Verdana, Arial, Helvetica, sans-serif" size="2"><b>Avances</b></font> 
      <table width="93%" border="1" align="center" cellpadding="2" cellspacing="0" bordercolor="#003366">
        <tr> 
          <td bgcolor="#006666" width="18%"> 
            <div align="center"><font size="1" color="#FFFFFF" face="Verdana, Arial, Helvetica, sans-serif">Fecha</font></div>
          </td>
          <td bgcolor="#006666" width="16%"> 
            <div align="center"><font size="1" color="#FFFFFF" face="Verdana, Arial, Helvetica, sans-serif">Hora</font></div>
          </td>
          <td bgcolor="#006666" width="66%"> 
            <div align="center"><font size="1" color="#FFFFFF" face="Verdana, Arial, Helvetica, sans-serif">Avance</font></div>
          </td>
        </tr>
         <?
          $sql
="select * from avance order by fecha_a desc";
          
$resultado=mysql_query($sql,$db) or die(mysql_error());
          while(
$registro=mysql_fetch_array($resultado))
          {
           
$fol=$registro['folio_a'];
           
$fech=$registro['fecha_a'];
           
$fecha=split("-",$fech);
           
$hora=split(":",$fecha[2]);
           
$fecha_hora=split(" ",$hora[0]);
           
$fecha_c=$fecha_hora[0].'-'.$fecha[1].'-'.$fecha[0];
           
$fecha_h=$fecha_hora[1].':'.$hora[1].':'.$hora[2];
           
$avance=$registro['detalle_a'];
           if (
$folio==$fol)
           {
            echo 
"<tr> 
                   <td width=18%><font size=1 face=Verdana, Arial, Helvetica, sans-serif><center>$fecha_c</center></font></td>
                   <td width=16%><font size=1 face=Verdana, Arial, Helvetica, sans-serif><center>$fecha_h</center></font></td>
                   <td width=66%><font size=1 face=Verdana, Arial, Helvetica, sans-serif>$avance</font></td>
                  </tr>"
;
           }
           else
           {
           }
         }
     
?>
     </table>
       <? 
        $actual
=$reg['f_termino'];
        
$anterior=$reg['f_estimada'];
        list(
$factual)=explode(" ",$actual);
        list(
$aa,$ma,$da)=explode("-",$factual);
        list(
$fanterior)=explode(" ",$anterior);
        list(
$at,$mt,$dt)=explode("-",$fanterior);
        
$sact=mktime(0,0,0,$ma,$da,$aa);
        
$sant=mktime(0,0,0,$mt,$dt,$at);
        
$difs=$sact-$sant;
        
$difm=$difs/60;
        
$difh=$difm/60;
        
$difd=$difh/24;
        if (
$difd 0) { $difd=($difd * -1); $observa="antes "; }
        if (
$difd == 0
        { 
          
$difd="igual numero de "
          
$observa="a "
        }
        else
        {
           
$observa="despues de";
        }
     
?>        
     <br>
     &nbsp;<font color="#003333" face="Verdana, Arial, Helvetica, sans-serif" size="2"><b>Observación</b></font>
      <table width="93%" border="1" align="center" cellpadding="2" cellspacing="0" bordercolor="#003366">
        <tr> 
          <td><b><font size="1" color="#CC3300" face="Verdana, Arial, Helvetica, sans-serif">Esta 
            Solicitud fue cerrada con <? echo $difd?> días <? echo $observa?>la fecha estimada de termino.</font></b> </td>
        </tr>
      </table><br><font size="1" color="#000033" face="Verdana, Arial, Helvetica, sans-serif">&nbsp;&nbsp;La 
        información del registro está destinada exclusivamente para fines estadísticos 
        de informaci&oacute;n. El Departamento de Informática garantiza la confidencialidad 
        de la información proporcionada y se reserva el derecho de eliminar los 
        registros con antecedentes no válidos.<br><br>
        &nbsp;<b>Departamento de Informática INDRA S.A.</b></font>
    </td>
  </tr>

  <tr> 
    <td height="25" valign="middle" align="center"> 
      <input type=button value='Cerrar Ventana' Onclick='window.close()'></td>
  </tr>
</table>
</body>
</html>
¿Que tengo que hacer al respecto?
¿Puedo mezclar html y php, para generar un informe como este y enviarlo por email?
¿tengo que hacer referencia ha algunas cabeceras?
desde ya se les agradece....

Atte. Germán Herrera C.

Última edición por Cluster; 24/08/2006 a las 18:52
  #2 (permalink)  
Antiguo 24/08/2006, 18:55
 
Fecha de Ingreso: agosto-2006
Mensajes: 58
Antigüedad: 11 años, 3 meses
Puntos: 0
es facil, consulta la funcion mail() de php, con ella puedes mandar correos con formato HTML y puedes mezclar HTML y PHP en el cuerpo del mensaje, cualquier duda estoy a tus ordenes.
  #3 (permalink)  
Antiguo 24/08/2006, 19:09
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Cita:
¿Que tengo que hacer al respecto?
Bueno, puedes empezar por ver como en PHP enviar un e-mail .. no sé si conces la funciòn mail() de PHP o la classe que tanto comentamos aquí en forosdelweb.com sobre "PHPMailer" (esta ùltima estaría bueno que la vieses).

Cita:
¿Puedo mezclar html y php, para generar un informe como este y enviarlo por email?
No se trata de "mezclar" sino que a la funciòn mail() de PHP o cualquiera que uses (PHPMailer) le tienes que pasar el "HTML" resultante de la ejecuciòn de tu código PHP.

Cita:
¿tengo que hacer referencia ha algunas cabeceras?
Si te refieres a las del e-mail, si .. hay que indicar vìa cabeceras HTTP que el e-mail que estás formando y vas a enviar será en HTML (por qué eso es lo que tu generas en tu ".php" y eso es lo que quieres tal cual en un e-mail.

Como ya tienes tu script PHP que hace todo el trabajo .. lo más "sano" sería usar las propiedades y funciones del control del buffer de PHP para tomar el resultado de la ejecuciòn de tu script PHP que ya tienes hacia una variable y asì poder componer el e-mail fácilmente.

envia_documento.php
Código PHP:
<?
// inicias la captura del buffer de salida de PHP:
ob_start();

// llamo a tu actual script PHP .. si necesitas pasale valores .. pasalos por el URL o en fo$folio=$_REQUEST['fol']; 
include("http://www.tal.tal/tu_script_php_que_ya_tienes.php?fol=".$_GET['fol']);
// asumo que puedes hacer llamadas por include() a archivos "externos" ...

// tomas lo que el buffer tiene en ese punto a una variable PHP.
$cuerpo_mail=ob_get_contents();

// te deshaces de lo que el buffer tenga y lo cierras 
// (no quiero ver el "HTML" generado .. este es el proceso de envio de mi e-mail .. supongo que por otro lado ya habras presentado estos datos a tu usuario ...)
ob_end_clean();

// en $cuerpo_mail ya tienes tu HTML del resultado para que compongas tu e-mail. Puedes chequear que funciona bien haciendo un echo a tu $cuerpo_mail.

// generas tu e-mail .. y lo envisa ...
// mail() .. o con PHPMail
?>
Lo usas pasandole la(s) variables que necesites .. como ese "fol":
envia_documento.php?fol=referencia

Referencias:
mail()
www.php.net/mail
PHPMailer
http://phpmailer.sourceforge.net

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.

Última edición por Cluster; 25/08/2006 a las 11:36
  #4 (permalink)  
Antiguo 25/08/2006, 11:37
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Ya está corregido el error en:

include("email_folio.php?folio=".$_GET['fol'];);
(le sobra el ; primero).

Por favor . .continua el hilo de tus mensajes abiertos, y no está de más indicar si despues de todo te funciona o no.

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #5 (permalink)  
Antiguo 25/08/2006, 13:47
 
Fecha de Ingreso: octubre-2005
Mensajes: 405
Antigüedad: 12 años, 1 mes
Puntos: 1
Cita:
Iniciado por Cluster Ver Mensaje
Ya está corregido el error en:

include("email_folio.php?folio=".$_GET['fol'];);
(le sobra el ; primero).

Por favor . .continua el hilo de tus mensajes abiertos, y no está de más indicar si despues de todo te funciona o no.

Un saludo,
Disculpa, sere mas cauto la proxima vez en seguir con el tema hasta su conclusión.
*** Espero comprendas que recien comienzo en este tema de php, y me ha costado muchisimo por la cantidad de temas relacionados; por esta razon recurro a ustedes como una forma de aprender. *********

Y en relacion al codigo corregido:

<?
ob_start();
include("email_folio.php?fol=".$_GET['fol']);
$cuerpo_mail=ob_get_contents();
ob_end_clean();
//echo $cuerpo_mail;
//ahora genero mail con mail() o PHPMail.
?>

tengo el siguiente problema:

Warning: main(email_folio.php?fol=91): failed to open stream: No such file or directory in \Servicios\enviar_email.php on line 7

Warning: main(): Failed opening 'email_folio.php?fol=91' for inclusion (include_path='.;..;../..;../../..') in \Servicios\enviar_email.php on line 7

Espero alguna recomendación. Y gracias por todo.........
  #6 (permalink)  
Antiguo 25/08/2006, 13:53
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Sobre tu problema actual .. te hacía referencia (aunque tal vez no lo notases o no te diste cuenta) que la opción que te planteo -sólo- funciona si tienes PHP configurado para "aceptar" conexiones externas .. En tu caso parece que no es así.

De todas formas en mi ejemplo te mencioné usar:
include("http://www.tal.tal/email_folio.php?fol=".$_GET['fol']);

Y no:
include("email_folio.php?fol=".$_GET['fol']);

Por qué PHP si no le indicas un "wrapper" (el http://) puede no tomar el archivo o interpretarlo como corresponde o como en este caso queremos que es que nos tome valores pasados por el URL (query string).

Fijate en el mensaje de error que te dá: .. menciona que no encuentra el archivo de nombre (textual y completo):

email_folio.php?fol=91

Es decir .. está asumiendo como nombre del archivo a incluir a tu variable y su valor.

Comprueba eso primero .. si obtienes el mismo mensaje de error .. ahí vemos como tratar el tema (que hay varias formas).

Cita:
*** Espero comprendas que recien comienzo en este tema de php, y me ha costado muchisimo por la cantidad de temas relacionados; por esta razon recurro a ustedes como una forma de aprender. *********
Ok, para eso estamos aquí .. pero eso es independiente del "uso" de un foro como este .. (que en cierta manera pretendemos ser "ordenados").

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 25/08/2006, 14:26
 
Fecha de Ingreso: octubre-2005
Mensajes: 405
Antigüedad: 12 años, 1 mes
Puntos: 1
Me quedo muy clara tu respuesta (Eso me pasa por no leer correctamente), pero entonces tu crees que es mejor hacerlo de la forma tradicional con:
$destinatario="[email protected]";
$asunto="Solicitud";
$cuerpo=' ******* codigo indicado en primer mensaje *******';
$headers=" Lo tipico ";
email($destinatario,$asunto,$cuerpo,$headers)

¿Tu crees que no se cree un conflicto con los codigos html y php y que ademas realize consultas a bases de datos?
¿Tendria que hacer cuerpos($cuerpo) distintos cada vez que el codigo cambie?

Dudas de principiantes.........
Gracias y Saludos.............
  #8 (permalink)  
Antiguo 25/08/2006, 14:50
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Las técnicas del control del buffer de PHP (ob_start()) y afines están para eso mismo .. No tendrás problemas .. Lo que hacen esas funcioens es darte el "HTML" generado.

Cita:
¿Tendria que hacer cuerpos($cuerpo) distintos cada vez que el codigo cambie?
No te entendí ... El código presentado con el manejo del buffer .. ya llama a tu script PHP original (el que generar tu "informe" a enviar) en forma totalmente dinámica .. cada vez que envias un e-mail se ejecuta tu otro código .. así que si cambias tu "email_folio.php" .. no afecta para nada al código del que compone el e-mail para enviarlo y su proceso própio.

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #9 (permalink)  
Antiguo 25/08/2006, 15:12
 
Fecha de Ingreso: octubre-2005
Mensajes: 405
Antigüedad: 12 años, 1 mes
Puntos: 1
disculpame pero no entendi...
Osea si yo mantengo el codigo que me enviaste:
<?
ob_start();
include("email_folio.php?fol=".$_GET['fol']);
$cuerpo_mail=ob_get_contents();
ob_end_clean();
//echo $cuerpo_mail;
//ahora genero mail con mail() o PHPMail.
?>

¿funcionaria igual?
Pero por lo que entendi no me funcionaria porque sólo funciona si tenego PHP configurado para "aceptar" conexiones externas
  #10 (permalink)  
Antiguo 25/08/2006, 15:13
 
Fecha de Ingreso: octubre-2005
Mensajes: 405
Antigüedad: 12 años, 1 mes
Puntos: 1
¿Existe la forma de configurar mi php para que acepte conexiones externas?
  #11 (permalink)  
Antiguo 25/08/2006, 15:25
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Cita:
Iniciado por [email protected] Ver Mensaje
disculpame pero no entendi...
Osea si yo mantengo el codigo que me enviaste:
<?
ob_start();
include("email_folio.php?fol=".$_GET['fol']);
$cuerpo_mail=ob_get_contents();
ob_end_clean();
//echo $cuerpo_mail;
//ahora genero mail con mail() o PHPMail.
?>

¿funcionaria igual?
Pero por lo que entendi no me funcionaria porque sólo funciona si tenego PHP configurado para "aceptar" conexiones externas
Primero usa la opción que te indiqué (con el HTTP://) si eso funciona .. es que puedes realizar conexiones externas.

En php.ini tienes la directiva que define si puedes o no acceder a contenido remoto por http:// u otros "wrappers":

allow_url_fopen
http://www.php.net/manual/en/features.remote-files.php

(lo puedes ver también haciendo un phpinfo())

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #12 (permalink)  
Antiguo 25/08/2006, 15:26
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Cita:
Iniciado por [email protected] Ver Mensaje
disculpame pero no entendi...
Osea si yo mantengo el codigo que me enviaste:
<?
ob_start();
include("email_folio.php?fol=".$_GET['fol']);
$cuerpo_mail=ob_get_contents();
ob_end_clean();
//echo $cuerpo_mail;
//ahora genero mail con mail() o PHPMail.
?>

¿funcionaria igual?
Pero por lo que entendi no me funcionaria porque sólo funciona si tenego PHP configurado para "aceptar" conexiones externas
Insisto .. yo no te envié:
include("email_folio.php?fol=".$_GET['fol']);
Sino:
include("http://www.tal.tal/email_folio.php?fol=".$_GET['fol']);

Tienes que usar tu domino .. o http://localhost/ o donde tengas ubicado tu URL de tu sitio ..

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #13 (permalink)  
Antiguo 25/08/2006, 15:43
 
Fecha de Ingreso: octubre-2005
Mensajes: 405
Antigüedad: 12 años, 1 mes
Puntos: 1
Sabes, soy muy duro de cabeza, me cuesta entender en algunas ocasiones, pero te lo agradezco, hoy puedo decir que aprendi algo nuevo con tus consejos..
sabes
F U N C I O N O

GRACIAS... Y Saludos ..ah!! nos vemos en otra ocasión..........
  #14 (permalink)  
Antiguo 25/08/2006, 16:03
 
Fecha de Ingreso: octubre-2005
Mensajes: 405
Antigüedad: 12 años, 1 mes
Puntos: 1
sabes.........
lo conclui de esta forma, para probarlo:
Código PHP:
<?
//captura del buffer de salida de php
ob_start();
//paso valor desde url
$folio=$_REQUEST['fol'];
//llamo al script email_folio.php pasando el folio del servicio.
include("http://cursophp:81/Servicios/email_folio.php?fol=$folio");
//tomo lo que guardo el buffer y lo almaceno en una variable.
$cuerpo_mail=ob_get_contents();
//vacio buffer y lo cierro.
ob_end_clean();
//echo $cuerpo_mail;
//ahora genero mail con mail() o PHPMail.
$destinatario="[email protected]";
$asunto="Finalización de Solicitud de Servicio";
$headers="MIME-Version:1.0\r\n";
$headers.="From:Indranet\r\n";
$headers.="Reply-To:[email protected]\r\n";
mail($destinatario,$asunto,$cuerpo,$headers)
?>
*** Pero***
Me aparece mensaje de depuracion de windows.......el típico.
PHP Script Interpreter ha detectado un problema y debe cerrarse.

Depuro y el mensaje es: 400 The CGI returned an invalid header:

¿Que significa esto..?

Gracias y Saludos..

Última edición por Cluster; 25/08/2006 a las 16:31
  #15 (permalink)  
Antiguo 25/08/2006, 16:30
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Realmente no sé a que se debe ese error .. es extremadamente genérico (siempre que lo he visto los tipos de errores han sido de lo más variopintos).

Fijate bien que no tengas nigún espacio ni salto de línea antes del primer <?

Tal vez:
ob_end_clean();

Al "limpiar el buffer" pueda dar algún problema?

Según php.net (que acabo de verlo) recomienda el uso de esa función así.

Código PHP:
<?php
while (@ob_end_clean());
?>
pruebalo a ver que tal te vá.

http://www.php.net/ob_end_clean

Por cierto .. que versión de PHP usas?, bajo que servidor HTTP? y que instalación de PHP usas (CGI o como módulo?).

El contenido que generas que tamaño tiene? (lo puedes ver viendo el peso de la página que generas cuando lo ejecutas en forma directa ..)

Un saludo,

PD: yo no he tenido oportunidad de probar el código textual que te expongo (pero si que en alguna ocasión he usado en la misma forma esas técnicas).
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #16 (permalink)  
Antiguo 25/08/2006, 16:32
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Por cierto .. del código que expusistes:
mail($destinatario,$asunto,$cuerpo_mail,$headers)

$cuerpo .. sería $cuerpo_mail (según defines más arriba).

Intenta colocar una dirección de correo en:
$headers.="From:Indranet\r\n";
algo tipo:
$headers.="From: [email protected] <blabla>\r\n";
ó sólo:
$headers.="From: [email protected]\r\n";
(y ojo con los espacioes . .respetalos)



Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #17 (permalink)  
Antiguo 25/08/2006, 16:36
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Otro detalle que ví:

usa:

<?
ob_start();
ob_implicit_flush(0);

Lo ví en este buen tutorial al respecto:
http://www.phpbuilder.com/columns/ar...25.php3?page=2

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #18 (permalink)  
Antiguo 25/08/2006, 16:46
 
Fecha de Ingreso: octubre-2005
Mensajes: 405
Antigüedad: 12 años, 1 mes
Puntos: 1
me indicas que enves de:
ob_start() use ob_implicit_flush(0); ¿Eso?

Me cuesta darme cuenta en detalles, pero tienes razon que en vez de $cuerpo_mail puse $cuerpo de esta manera funciono.

Pero cuando recibo los datos (Outlook de Microsoft) el archivo adjunto me aparece como "Finalizacion de Solicitud.dat" y además 2 veces.

porque ¿queda en este formato?

Última edición por [email protected]; 25/08/2006 a las 17:01
  #19 (permalink)  
Antiguo 25/08/2006, 18:41
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Cita:
me indicas que enves de:
ob_start() use ob_implicit_flush(0); ¿Eso?
No, no dije que una excluirá a la otra funciòn .. sino de usar ambas y en ese orden (o asì recomendiendan en algunos tutoriales).

Cita:
Pero cuando recibo los datos (Outlook de Microsoft) el archivo adjunto me aparece como "Finalizacion de Solicitud.dat" y además 2 veces
Bueno .. es que tu e-mail tal cual lo compones no estás indicando que tenga que ser en HTML. Ya te comenté que el e-mail debe ir con cabeceras que indiquen que el e-mail será en HTML (o su contenido asì debe ser interpretado).

En Las FAQ's de este foro PHP tienes ejemplo de uso de mail() y tambièn en la documentación oficial de PHP (php.net).

Cita:
porque ¿queda en este formato?
Así lo interpretan la mayorìa de clientes de correo si no se formatea correctamente el e-mail con sus cabeceras adecuadas.

Sabes .. para no liarte con "mail()" y no saber ni que cabeceras usar, te recomendaría que uses: PHPMailer o que la veas una vez te medio funcione con mail() .. por què sino vas a encontrarte con otros problemas y más conceptos que aprender!!!... como por ejemplo entender un pco el protocolo SMTP para que sepas por qué pasan algunas cosas como las que estás experimentando. La función "mail()" de PHP no lo hace todo (en cuanto a enviar el e-mail ni generarlo) por eso hay que poner "a mano" las cabeceras que uno considere que debe usar según sea el caso ... (y eso no es cosa de PHP saberlo sino de conocer el protocolo SMTP en este caso ..)


Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
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 23:44.