Foros del Web » Programando para Internet » PHP »

problemas con echo <<< EOT

Estas en el tema de problemas con echo <<< EOT en el foro de PHP en Foros del Web. Hola amigos, necesito una vez de su ayuda!! REsulta que quiero usar el echo <<< EOT para no tener q escapear todo el codigo HTML, ...
  #1 (permalink)  
Antiguo 19/12/2008, 10:43
 
Fecha de Ingreso: noviembre-2006
Ubicación: Capital Federal
Mensajes: 141
Antigüedad: 17 años, 5 meses
Puntos: 1
Sonrisa problemas con echo <<< EOT

Hola amigos, necesito una vez de su ayuda!!

REsulta que quiero usar el echo <<< EOT para no tener q escapear todo el codigo HTML, es para poner una tabla con datos para un mail, les pongo el codigo.....a ver si alguien se da cuenta en quue le estoy errando.....

$mensaje =
echo <<< EOT
<table bgcolor="#ffffff" border="0" cellpadding="2" cellspacing="1" width="100%">
<tr>
<td bgcolor="#B2A982" height="13" style="text-align: left">
<font color="#FFFFFF">Fecha</font></td>
<td bgcolor="#B2A982" height="13" style="text-align: left">
<font color="#FFFFFF">Titulo</font></td>
<td bgcolor="#B2A982" height="13" style="text-align: left">
<font color="#FFFFFF">Descripcion</font></td>
</tr>
while($line = mysql_fetch_assoc($result_avisos))
{
<tr>
<td> echo $line["fecha"];</td>
<td> echo $line["titulo"];</td>
<td> echo $line["descripcion"];</td>
</tr>

}

</table>
EOT;


Me tira el siguiente error
Parse error: syntax error, unexpected T_ECHO in home/od000542/public_html/tuba/mandar_newsleter_2.php on line 53

que es esta linea " echo <<< EOT "

Muchas garcias.
  #2 (permalink)  
Antiguo 19/12/2008, 10:52
Avatar de Ronruby  
Fecha de Ingreso: julio-2008
Ubicación: 18°30'N, 69°59'W
Mensajes: 4.879
Antigüedad: 15 años, 9 meses
Puntos: 416
Respuesta: problemas con echo <<< EOT

Esta poniendo $variable = echo <<<EOT.

Es $variable = <<<EOT

PD: Eso se llama Sintaxis HEREDOC.
  #3 (permalink)  
Antiguo 19/12/2008, 11:02
 
Fecha de Ingreso: noviembre-2006
Ubicación: Capital Federal
Mensajes: 141
Antigüedad: 17 años, 5 meses
Puntos: 1
Respuesta: problemas con echo <<< EOT

Hola amigo, probe lo que me dijistes y ahora me lanza este error

$mensaje = <<< EOT
<table bgcolor="#ffffff" border="0" cellpadding="2" cellspacing="1" width="100%">
<tr>
<td bgcolor="#B2A982" height="13" style="text-align: left">
<font color="#FFFFFF">Fecha</font></td>
<td bgcolor="#B2A982" height="13" style="text-align: left">
<font color="#FFFFFF">Titulo</font></td>
<td bgcolor="#B2A982" height="13" style="text-align: left">
<font color="#FFFFFF">Descripcion</font></td>
</tr>
<?php
while($line = mysql_fetch_assoc($result_avisos))
{
?>
<tr>
<td><?php echo $fecha; ?></td>
<td><?php echo $titulo; ?></td>
<td><?php echo $descripcion; ?></td>
</tr>
<?php
}
?>
</table>
EOT;

Parse error: syntax error, unexpected $end in /home/od000542/public_html/tuba/mandar_newsleter_2.php on line 248

la linea 248 es la ultima linea del file!!!

Gracias x tu ayuda!
  #4 (permalink)  
Antiguo 19/12/2008, 11:04
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: problemas con echo <<< EOT

pues... estas cerrando ?> antes del EOT;

¿¿ o no ???

debería ir, justo al cerrar el while


--
déjame adelantarte, que debes leer el manual sobre HEREDOC ... ya que solo interpreta variables no ciclos !!!
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #5 (permalink)  
Antiguo 19/12/2008, 11:10
 
Fecha de Ingreso: noviembre-2006
Ubicación: Capital Federal
Mensajes: 141
Antigüedad: 17 años, 5 meses
Puntos: 1
Respuesta: problemas con echo <<< EOT

mmm no se sigue sin funcionarme........
ahora deje asi el codigo

$mensaje = <<< EOT
<table bgcolor="#ffffff" border="0" cellpadding="2" cellspacing="1" width="100%">
<tr>
<td bgcolor="#B2A982" height="13">Fecha</td>
<td bgcolor="#B2A982" height="13">Titulo</td>
<td bgcolor="#B2A982" height="13">Descripcion</td>
</tr>
<?php
while($line = mysql_fetch_assoc($result_avisos))
{
?>
<tr>
<td><?php echo $fecha; ?></td>
<td><?php echo $titulo; ?></td>
<td><?php echo $descripcion; ?></td>
</tr>
<?php
}
?>
</table>
EOT;

Parse error: syntax error, unexpected $end in /home/od000542/public_html/tuba/mandar_newsleter_2.php on line 252
  #6 (permalink)  
Antiguo 19/12/2008, 11:16
 
Fecha de Ingreso: noviembre-2006
Ubicación: Capital Federal
Mensajes: 141
Antigüedad: 17 años, 5 meses
Puntos: 1
Respuesta: problemas con echo <<< EOT

Tambien probe con esto y no me funciona!!

$mensaje = echo "<table width=\"100%\" border=\"0\" cellpadding=\"2\" cellspacing=\"1\">";
echo "<tr>";
echo "<td>Fecha</td>";
echo "<td>Titulo</td>";
echo "<td>Descripcion</td>";
echo "</tr>";
while($line = mysql_fetch_assoc($result_avisos))
{
echo "<tr>";
echo "<td>echo $line["fecha"];</td>";
echo "<td>echo $line["titulo"];</td>";
echo "<td>echo $line["descripcion"];</td>";
echo "</tr>";
}
echo "</table>";

me tira este error


Parse error: syntax error, unexpected T_ECHO in /home/od000542/public_html/tuba/mandar_newsleter_2.php on line 52

donde la linea 52 es esto
$mensaje = echo "<table width=\"100%\" border=\"0\" cellpadding=\"2\" cellspacing=\"1\">";

gracias
  #7 (permalink)  
Antiguo 19/12/2008, 11:18
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: problemas con echo <<< EOT

estas volviendo a lo mismo !!!

no puedes asignar un echo a una variable, deberías leer un manual...


Código PHP:
$foo 'a';
$foo .= 'b';
$foo .= 'c';

while (
/* ... */)
{
 
$foo .= '...';
}

$foo .= 'd';
$foo .= '...'
debes concatenar tus variables, o bien... imprimirlas


PDTA: no dejes de leer el manual de PHP (básico)
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #8 (permalink)  
Antiguo 19/12/2008, 11:21
 
Fecha de Ingreso: noviembre-2006
Ubicación: Capital Federal
Mensajes: 141
Antigüedad: 17 años, 5 meses
Puntos: 1
Respuesta: problemas con echo <<< EOT

je perdon copie y pegue mal!!! ya estoy mareado quise decir q probe con los echo y tampocome funciona
$mensaje = echo "<table width=\"100%\" border=\"0\" cellpadding=\"2\" cellspacing=\"1\">";
echo "<tr>";
echo "<td>Fecha</td>";
echo "<td>Titulo</td>";
echo "<td>Descripcion</td>";
echo "</tr>";
while($line = mysql_fetch_assoc($result_avisos))
{
echo "<tr>";
echo "<td></td>";
echo "<td></td>";
echo "<td></td>";
echo "</tr>";
}
echo "</table>";

aqui les saque los echo a las variables y sigue tirando el mismo error...........
  #9 (permalink)  
Antiguo 19/12/2008, 11:26
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: problemas con echo <<< EOT

¿ cual error ???



te reitero, NO puedes asignar echo a variables.... solo hay dos formas: o imprimes (usando echo) o concatenas (con .=)


¿si estas leyendo el manual de PHP, cierto??
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #10 (permalink)  
Antiguo 19/12/2008, 11:26
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: problemas con echo <<< EOT

Pues no puedes asignar un echo a una variable, es por eso tu error.
  #11 (permalink)  
Antiguo 19/12/2008, 11:31
 
Fecha de Ingreso: noviembre-2006
Ubicación: Capital Federal
Mensajes: 141
Antigüedad: 17 años, 5 meses
Puntos: 1
Respuesta: problemas con echo <<< EOT

aaa oki ahora entendi me faltaba le .= en $mensaje........igual aqui el codigo
$mensaje .= echo "<table width=\"100%\" border=\"0\" cellpadding=\"2\" cellspacing=\"1\">";
echo "<tr>";
echo "<td>Fecha</td>";
echo "<td>Titulo</td>";
echo "<td>Descripcion</td>";
echo "</tr>";
while($line = mysql_fetch_assoc($result_avisos))
{
echo "<tr>";
echo "<td></td>";
echo "<td></td>";
echo "<td></td>";
echo "</tr>";
}
echo "</table>";

Pero me sigue tirando error y es el siguiente.........
Parse error: syntax error, unexpected T_ECHO in /home/od000542/public_html/tuba/mandar_newsleter_2.php on line 52
y la linea 52
$mensaje .= echo "<table width=\"100%\" border=\"0\" cellpadding=\"2\" cellspacing=\"1\">";
  #12 (permalink)  
Antiguo 19/12/2008, 11:31
 
Fecha de Ingreso: abril-2008
Ubicación: Montevideo - Uruguay
Mensajes: 156
Antigüedad: 16 años
Puntos: 5
Respuesta: problemas con echo <<< EOT

Hi !

Código PHP:
$mensaje "<table width=\"100%\" border=\"0\" cellpadding=\"2\" cellspacing=\"1\">";
$mensaje.= "<tr>";
$mensaje.= "<td>Fecha</td>";
$mensaje.= "<td>Titulo</td>";
$mensaje.= "<td>Descripcion</td>";
$mensaje.= "</tr>";

while(
$line mysql_fetch_assoc($result_avisos))
{
    
$mensaje.= "<tr>";
    
$mensaje.= "<td></td>";
    
$mensaje.= "<td></td>";
    
$mensaje.= "<td></td>";
    
$mensaje.= "</tr>";
}
$mensaje.= "</table>";

echo 
$mensaje
P.D: Parece que lo que no se entiende es que no puedes hacer esto:
Código PHP:
$mensaje = echo "hola mundo"
-ByE-
__________________
--
Mi Portfolio Online! Visitalo!
--
  #13 (permalink)  
Antiguo 19/12/2008, 11:32
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: problemas con echo <<< EOT

la tercera es la vencida (y eso que ya te hicieron la tarea)

NO puedes asignar un echo a una variable !!!

Cita:
Iniciado por pateketrueke Ver Mensaje
[...] o imprimes (usando echo) o concatenas (con .=) [...]
...
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #14 (permalink)  
Antiguo 19/12/2008, 11:37
 
Fecha de Ingreso: diciembre-2008
Ubicación: localhost
Mensajes: 232
Antigüedad: 15 años, 4 meses
Puntos: 3
Respuesta: problemas con echo <<< EOT

Pana, y si colocas solo en php lo que necesitas realmente y trabajas el HTML fuera de las etiquetas de PHP? es una opción y la más fácil... La otra sería colocando un solo echo "TODO EL CÓDIGO HTML" ; y ya!


Código PHP:
<table bgcolor="#ffffff" border="0" cellpadding="2" 

cellspacing="1" width="100%">
<tr>
<td bgcolor="#B2A982" height="13" style="text-align: left">
<font color="#FFFFFF">Fecha</font></td>
<td bgcolor="#B2A982" height="13" style="text-align: left">
<font color="#FFFFFF">Titulo</font></td>
<td bgcolor="#B2A982" height="13" style="text-align: left">
<font color="#FFFFFF">Descripcion</font></td>
</tr>
<?
while($line mysql_fetch_assoc($result_avisos))
{
?>
<tr>
<td><?php echo $fecha?></td>
<td><?php echo $titulo?></td>
<td><?php echo $descripcion?></td>
</tr>
<?
}
?>
</table>
  #15 (permalink)  
Antiguo 19/12/2008, 11:47
 
Fecha de Ingreso: noviembre-2006
Ubicación: Capital Federal
Mensajes: 141
Antigüedad: 17 años, 5 meses
Puntos: 1
Respuesta: problemas con echo <<< EOT

aleluia jeje anduvo con el ejemplo de Proguri!!!!!
ahora bien resulta q eso se manda por mail y en el cuerpo del mail me llega todo asi
<table width="100%" border="0" cellpadding="2" cellspacing="1"><tr><td>Fecha</td><td>Titulo</td><td>Descripcion</td></tr><tr><td></td><td></td><td></td></tr><tr><td></td><td></td><td></td></tr></table>

osea el string y no me arma la tabla pongo todo el encabezado del mail etc

todo este es el codigo

<?php

$asunto = "Newslleter Semanal";
$de = $email_empresa;

$header = "From: " . $de . " \r\n";
$header .= "X-Mailer: PHP/" . phpversion() . " \r\n";
$header .= "Mime-Version: 1.0 \r\n";
$header .= "Content-Type: text/plain";

/*
$mensaje .= "Fecha : " .$fecha." \r\n";
$mensaje .= "Titulo : " .$titulo." \r\n";
$mensaje .= "Descripcion : " .$descripcion." \r\n";
*/

$mensaje = "<table width=\"100%\" border=\"0\" cellpadding=\"2\" cellspacing=\"1\">";
$mensaje.= "<tr>";
$mensaje.= "<td>Fecha</td>";
$mensaje.= "<td>Titulo</td>";
$mensaje.= "<td>Descripcion</td>";
$mensaje.= "</tr>";
while($line = mysql_fetch_assoc($result_avisos))
{
$mensaje.= "<tr>";
$mensaje.= "<td>";
$line["fecha"];
$mensaje.= "</td>";
$mensaje.= "<td>";
$line["titulo"];
$mensaje.= "</td>";
$mensaje.= "<td>";
$line["descripcion"];
$mensaje.= "</td>";
$mensaje.= "</tr>";
}
$mensaje.= "</table>";
$mensaje .= " \r\n";
$mensaje .= "Enviado el " . date('d/m/Y', time());

mail($emails, $asunto, utf8_decode($mensaje), $header);

?>
  #16 (permalink)  
Antiguo 19/12/2008, 11:54
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: problemas con echo <<< EOT

Pues no estas concatenando a $mensaje los datos de $line, si te fijas solo pones ahi la variable, pero no la imprimes ni nada.

Saludos.
  #17 (permalink)  
Antiguo 19/12/2008, 12:06
 
Fecha de Ingreso: noviembre-2006
Ubicación: Capital Federal
Mensajes: 141
Antigüedad: 17 años, 5 meses
Puntos: 1
Respuesta: problemas con echo <<< EOT

hola GastorV si lo vi y lo arregle pero buehhh el tema ahora es asi.............logre q mande el mail..PERO.......en el email lo abro y andes de formarme la tabla me pone el codigo HTML
<table width="100%" border="0" cellpadding="2" cellspacing="1"><tr><td>Fecha</td><td>Titulo</td><td>Descripcion</td></tr><tr><td></td><td></td><td></td></tr></table>

eso por un lado y por el otro las variables
$mensaje = "<table width=\"100%\" border=\"0\" cellpadding=\"2\" cellspacing=\"1\">";
$mensaje.= "<tr>";
$mensaje.= "<td>Fecha</td>";
$mensaje.= "<td>Titulo</td>";
$mensaje.= "<td>Descripcion</td>";
$mensaje.= "</tr>";
$mensaje.= "<tr>";
$mensaje.= "<td>";
$fecha;
$mensaje.= "</td>";
$mensaje.= "<td>";
$titulo;
$mensaje.= "</td>";
$mensaje.= "<td>";
$descripcion;
$mensaje.= "</td>";
$mensaje.= "</tr>";
$mensaje.= "</table>";
$fecha, $titulo y $descripcion brillan por su ausencia!! je

Pongo todo el codigo ahsta el momento

<?php
$result_avisos = mysql_query("SELECT * FROM avisos WHERE id_empresa='$id_empresa' ORDER BY fecha DESC LIMIT 2");

while( $line = mysql_fetch_assoc($result_avisos) )
{
$fecha .= $line["fecha"];
$titulo .= $line["titulo"];
$descripcion .= $line["descripcion"];
}
//armado del mail
$asunto = "Newslleter Semanal";
$de = $email_empresa;

$header = "From: " . $de . " \r\n";
$header .= "X-Mailer: PHP/" . phpversion() . " \r\n";
$header .= "Mime-Version: 1.0 \r\n";
$header .= "Content-Type: text/plain";

$mensaje = "<table width=\"100%\" border=\"0\" cellpadding=\"2\" cellspacing=\"1\">";
$mensaje.= "<tr>";
$mensaje.= "<td>Fecha</td>";
$mensaje.= "<td>Titulo</td>";
$mensaje.= "<td>Descripcion</td>";
$mensaje.= "</tr>";
$mensaje.= "<tr>";
$mensaje.= "<td>";
$fecha;
$mensaje.= "</td>";
$mensaje.= "<td>";
$titulo;
$mensaje.= "</td>";
$mensaje.= "<td>";
$descripcion;
$mensaje.= "</td>";
$mensaje.= "</tr>";
$mensaje.= "</table>";
$mensaje .= " \r\n";
$mensaje .= "Enviado el " . date('d/m/Y', time());

mail($emails, $asunto, utf8_decode($mensaje), $header);

?>

muchas gracias por su ayuda a todos!!!!!!!!!!!!!!
  #18 (permalink)  
Antiguo 19/12/2008, 12:22
 
Fecha de Ingreso: noviembre-2006
Ubicación: Capital Federal
Mensajes: 141
Antigüedad: 17 años, 5 meses
Puntos: 1
Mensaje Respuesta: problemas con echo <<< EOT

ya logre hacer funcionar casi todo!!!!

solo me queda ver porque en el mail no me pega el codigo HTML y no me arma la tabla!!

el encabezado del mail es asi

$header = "From: " . $de . " \r\n";
$header .= "X-Mailer: PHP/" . phpversion() . " \r\n";
$header .= "Mime-Version: 1.0 \r\n";
$header .= "Content-Type: text/plain";

Muchas gracias!!!!!!
  #19 (permalink)  
Antiguo 19/12/2008, 13:51
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: problemas con echo <<< EOT

$header .= "Content-Type: text/html";

Saludos.
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 18:21.