Foros del Web » Programando para Internet » PHP »

Problema con contenido HTML en una variable.

Estas en el tema de Problema con contenido HTML en una variable. en el foro de PHP en Foros del Web. Edito el post porque era muy largo y seguramente nadie lo iba a querer leer. El código HTML que expongo a continuación lo tengo almacenado ...
  #1 (permalink)  
Antiguo 07/11/2010, 16:46
 
Fecha de Ingreso: noviembre-2010
Mensajes: 30
Antigüedad: 13 años, 5 meses
Puntos: 0
Problema con contenido HTML en una variable.

Edito el post porque era muy largo y seguramente nadie lo iba a querer leer.

El código HTML que expongo a continuación lo tengo almacenado en una $variable. Si, desde un archivo php, hago un echo $variable; el código es interpretado y mostrado correctamente. Si dicha variable la utilizo como cuerpo en la función mail, el E-Mail llega correctamente y al visualizarlo se ve la interpretación del código HTML correctamente.

El problema surge cuando coloco en un archivo HTML el mismo código que tiene la variable, ya que no es interpretado completamente, las imágenes no aparecen.

No entiendo porque al hacer un echo de ese código o al enviarlo por E-.Mail se interpreta correctamente, pero desde un archivo HTML no.

Código:
					
		
				<table prevstyle="background-color: #FFFFFF; border-collapse: collapse; margin-bottom: 20px; border: 1px dashed #AAAAAA;" style="background-color: #FFFFFF; border-collapse: collapse; margin-bottom: 20px; border: 1px dashed #AAAAAA;" align="center" border="0">
      <tbody><tr>
        <td prevstyle="background-image: url("http://promza.dyndns.org/carga_guarda_muestra/cabeceras/cabecera.jpg"); background-repeat: no-repeat; border: 1px dashed #AAAAAA;" style="background-image: url("http://promza.dyndns.org/carga_guarda_muestra/cabeceras/cabecera.jpg"); background-repeat: no-repeat; border: 1px dashed #AAAAAA;" height="170" valign="top" width="901"></td>
      </tr>
      <tr>
      	<td prevstyle="background-image: url("http://promza.dyndns.org/carga_guarda_muestra/cuerpos/cuerpo.jpg"); background-repeat: no-repeat; border: 1px dashed #AAAAAA;" style="background-image: url("http://promza.dyndns.org/carga_guarda_muestra/cuerpos/cuerpo.jpg"); background-repeat: no-repeat; border: 1px dashed #AAAAAA;" height="986" valign="top" width="901">REDACTAR DESDE AQUI</td>
      </tr>
      <tr>
	  	<td prevstyle="background-image: url("http://promza.dyndns.org/carga_guarda_muestra/pies/pie.jpg"); background-repeat: no-repeat; border: 1px dashed #AAAAAA;" style="background-image: url("http://promza.dyndns.org/carga_guarda_muestra/pies/pie.jpg"); background-repeat: no-repeat; border: 1px dashed #AAAAAA;" height="113" valign="top" width="901"></td>        
      </tr>
</tbody></table>
Por cierto, dicho código lo genero con el Editor wysiwyg.

Última edición por GNULinux; 07/11/2010 a las 18:34
  #2 (permalink)  
Antiguo 07/11/2010, 18:47
Avatar de spider_boy  
Fecha de Ingreso: diciembre-2003
Ubicación: Chile
Mensajes: 1.855
Antigüedad: 20 años, 4 meses
Puntos: 89
Respuesta: Problema con contenido HTML en una variable.

¿Ese código lo pones tal cual en el html, o pegas todo lo de PHP en el HTML?

¿Si haces <img src='ruta a la imagen' />, la muestra?
__________________
Nunca te olvidaré mi negra hermosa. Te extraño demasiado.
  #3 (permalink)  
Antiguo 07/11/2010, 19:13
 
Fecha de Ingreso: noviembre-2010
Mensajes: 30
Antigüedad: 13 años, 5 meses
Puntos: 0
Respuesta: Problema con contenido HTML en una variable.

Cita:
Iniciado por spider_boy Ver Mensaje
¿Ese código lo pones tal cual en el html, o pegas todo lo de PHP en el HTML?

¿Si haces <img src='ruta a la imagen' />, la muestra?
Mira, para que se entienda mejor, te comento que el sistema que estoy haciendo, en entre otras cosas, permite crear plantillas HTML a partir de imágenes. El sistema también te permite enviar la plantilla por E-Mail o visualizar su código HTML (en un <textarea>) para poder copiarlo y usarlo en otro programa.

El problema es que el mismo código que se envía por E-Mail, el cual, posteriormente se visualiza correctamente en el correo, es el mismo que se muestra en el <textarea> para que el usuario lo pueda copiar y usarlo como quiera. Lo extraño es que si el código del <textarea> se copia y se pega en un HTML no funciona.

Ejemplo:

- Si hago lo siguiente desde un archivo PHP:

Código:
echo $variable;
el código HTML que contiene la variable se interpreta y se muestra correctamente.


- Si hago lo siguiente desde un archivo PHP:

Código:
echo "<textarea name=\"muestra_html\">
		
	".$variable."

</textarea>;
esta vez, el mismo código que anteriormente se había mostrado interpretado, se muestra sin interpretar, dentro del <textarea>, para poder ser copiado por el usuario. Si copio el código que se genera en el <textarea> y lo pego en un archivo HTML (o PHP) no se ven las imágenes.

Si hago un <img src='ruta a la imagen' /> la imagen se ve perfectamente, están en mi server.
  #4 (permalink)  
Antiguo 07/11/2010, 19:18
Avatar de spider_boy  
Fecha de Ingreso: diciembre-2003
Ubicación: Chile
Mensajes: 1.855
Antigüedad: 20 años, 4 meses
Puntos: 89
Respuesta: Problema con contenido HTML en una variable.

Me extraña este trozo de código :

Código PHP:
Ver original
  1. <textarea name="muestra_html">
  2.        
  3.     ".$variable."
  4.  
  5. </textarea>

¿Qué haces ahí? ¿Imprimes el HTML dentro del textarea? Es extraño, porque si asi fuera, tendrías que escapar las comillas del name del textarea.

Me da la sensación de que haces algo así :

Código PHP:
Ver original
  1. echo "<textarea name=\"muestra_html\">
  2.        
  3.    ".$variable."
  4.  
  5. </textarea>";

Ahora, ¿podrías mostrar más código? Quizá el código que no se interpreta y el que sí.
__________________
Nunca te olvidaré mi negra hermosa. Te extraño demasiado.
  #5 (permalink)  
Antiguo 07/11/2010, 19:22
 
Fecha de Ingreso: noviembre-2010
Mensajes: 30
Antigüedad: 13 años, 5 meses
Puntos: 0
Respuesta: Problema con contenido HTML en una variable.

En realidad lo tengo como vos decís, pero lo copié mal en el ejemplo. Fijate que ahí edite el post y lo arregle.

El código que no se interpreta y el que sí, es el mismo, por eso lo extraño.

Este código es el que se guarda en la variable y se interpreta correctamente si hago un "echo $variable", pero si lo copio y lo pego un un HTML no funciona. No entiendo por que.

Código:
					
		
				<table prevstyle="background-color: #FFFFFF; border-collapse: collapse; margin-bottom: 20px; border: 1px dashed #AAAAAA;" style="background-color: #FFFFFF; border-collapse: collapse; margin-bottom: 20px; border: 1px dashed #AAAAAA;" align="center" border="0">
      <tbody><tr>
        <td prevstyle="background-image: url("http://promza.dyndns.org/carga_guarda_muestra/cabeceras/cabecera.jpg"); background-repeat: no-repeat; border: 1px dashed #AAAAAA;" style="background-image: url("http://promza.dyndns.org/carga_guarda_muestra/cabeceras/cabecera.jpg"); background-repeat: no-repeat; border: 1px dashed #AAAAAA;" height="170" valign="top" width="901"></td>
      </tr>
      <tr>
      	<td prevstyle="background-image: url("http://promza.dyndns.org/carga_guarda_muestra/cuerpos/cuerpo.jpg"); background-repeat: no-repeat; border: 1px dashed #AAAAAA;" style="background-image: url("http://promza.dyndns.org/carga_guarda_muestra/cuerpos/cuerpo.jpg"); background-repeat: no-repeat; border: 1px dashed #AAAAAA;" height="986" valign="top" width="901">REDACTAR DESDE AQUI</td>
      </tr>
      <tr>
	  	<td prevstyle="background-image: url("http://promza.dyndns.org/carga_guarda_muestra/pies/pie.jpg"); background-repeat: no-repeat; border: 1px dashed #AAAAAA;" style="background-image: url("http://promza.dyndns.org/carga_guarda_muestra/pies/pie.jpg"); background-repeat: no-repeat; border: 1px dashed #AAAAAA;" height="113" valign="top" width="901"></td>        
      </tr>
</tbody></table>

Última edición por GNULinux; 07/11/2010 a las 19:30
  #6 (permalink)  
Antiguo 07/11/2010, 19:32
Avatar de spider_boy  
Fecha de Ingreso: diciembre-2003
Ubicación: Chile
Mensajes: 1.855
Antigüedad: 20 años, 4 meses
Puntos: 89
Respuesta: Problema con contenido HTML en una variable.

Por lo que leí en tu 1er comentario, estás usando un WYSIWYG. Este te genera el código, lo copias, lo pegas, luego lo vuelves a mostrar en otro textarea y ahí ya no se ve como debería. ¿Así es?

¿Es tu 2do textarea un WYSIWG?

Pega un trozo de código que se interprete bien y el mismo pedazo pero que no se interprete, para tener una idea de que hacer.
__________________
Nunca te olvidaré mi negra hermosa. Te extraño demasiado.
  #7 (permalink)  
Antiguo 07/11/2010, 19:52
 
Fecha de Ingreso: noviembre-2010
Mensajes: 30
Antigüedad: 13 años, 5 meses
Puntos: 0
Respuesta: Problema con contenido HTML en una variable.

Cita:
Iniciado por spider_boy Ver Mensaje
Por lo que leí en tu 1er comentario, estás usando un WYSIWYG. Este te genera el código, lo copias, lo pegas, luego lo vuelves a mostrar en otro textarea y ahí ya no se ve como debería. ¿Así es?

¿Es tu 2do textarea un WYSIWG?

Pega un trozo de código que se interprete bien y el mismo pedazo pero que no se interprete, para tener una idea de que hacer.
El tema es así:

Un usuario, a partir de 3 imágenes que elige (cabecera.jpg, cuerpo.jpg y pie.jpg), genera una plantilla. Esta plantilla que se genera no es más que una tabla de 3 filas que tiene las 3 imágenes como background.

Después, desde un archivo edición.php habilito un WYSIWG para que el usuario escriba, pero como es fundamental que el usuario sepa en que parte de la plantilla que creo previamente va a quedar el texto que va escribir, cuando se muestra el WYSIWG, de fondo del mismo, aparece la plantilla; esto es fácil hacerlo porque como el WYSIWG es un <textarea>, simplemente se encierra el código HTML de la plantilla entre las etiquetas <textarea>, entonces cuando se muestra el WYSIWG, aparece con la plantilla de fondo.

Después de que el usuario termina la redacción puede hacer dos cosas:

1- Enviar la plantilla por E-Mail: Lo que se hace en este caso es pasar el contenido del <textarea> a otra página en donde se guarda en una variable y esta se manda como cuerpo de la función mail

2- Ver el código HTML para usarlo en otro programa: En este caso, también se pasa el contenido del <textarea> a otra página en donde se guarda en una variable y después esa variable se imprime en un "<textarea> común" para que el código no sea interpretado y el usuario lo pueda copiar y pegar.

Como verás, el mismo código que se manda por E-Mail y que, posteriormente, aparece correctamente interpretado en el correo, es el mismo que se muestra sin interpretar en el "<textarea> común" para que el usuario lo copie y lo pegue.

El problema es que si el usuario lo copia y lo pega en un HTML, no funciona.

Este un ejemplo del código que se genera:

Código:
<table prevstyle="background-color: #FFFFFF; border-collapse: collapse; margin-bottom: 20px; border: 1px dashed #AAAAAA;" style="background-color: #FFFFFF; border-collapse: collapse; margin-bottom: 20px; border: 1px dashed #AAAAAA;" align="center" border="0">
      <tbody><tr>
        <td prevstyle="background-image: url("http://promza.dyndns.org/carga_guarda_muestra/cabeceras/cabecera.jpg"); background-repeat: no-repeat; border: 1px dashed #AAAAAA;" style="background-image: url("http://promza.dyndns.org/carga_guarda_muestra/cabeceras/cabecera.jpg"); background-repeat: no-repeat; border: 1px dashed #AAAAAA;" height="170" valign="top" width="901"></td>
      </tr>
      <tr>
      	<td prevstyle="background-image: url("http://promza.dyndns.org/carga_guarda_muestra/cuerpos/cuerpo.jpg"); background-repeat: no-repeat; border: 1px dashed #AAAAAA;" style="background-image: url("http://promza.dyndns.org/carga_guarda_muestra/cuerpos/cuerpo.jpg"); background-repeat: no-repeat; border: 1px dashed #AAAAAA;" height="986" valign="top" width="901">REDACTAR DESDE AQUI</td>
      </tr>
      <tr>
	  	<td prevstyle="background-image: url("http://promza.dyndns.org/carga_guarda_muestra/pies/pie.jpg"); background-repeat: no-repeat; border: 1px dashed #AAAAAA;" style="background-image: url("http://promza.dyndns.org/carga_guarda_muestra/pies/pie.jpg"); background-repeat: no-repeat; border: 1px dashed #AAAAAA;" height="113" valign="top" width="901"></td>        
      </tr>
</tbody></table>

Si hago un "echo" de este código, se interpreta correctamente, pero si lo pego en un HTML, no.
  #8 (permalink)  
Antiguo 08/11/2010, 11:21
Avatar de spider_boy  
Fecha de Ingreso: diciembre-2003
Ubicación: Chile
Mensajes: 1.855
Antigüedad: 20 años, 4 meses
Puntos: 89
Respuesta: Problema con contenido HTML en una variable.

Es extraño. Si copias y pegas el código debería ser lo mismo que hacer un echo.

Copié y pegué el código que muestras y no me muestra las imágenes. ¿Estás seguro que la URL está bien? Quizá al hacer echo tienes otro código, y el código generado es distinto, no lo sé.

Al probar los correos que envías, ¿los has probado desde otra máquina que no sea tu PC? ¿Tu server es tu PC local? ¿El código que llega al correo y que se interpreta en el WYSIWYG es idéntico al que pegaste acá en el foro?
__________________
Nunca te olvidaré mi negra hermosa. Te extraño demasiado.
  #9 (permalink)  
Antiguo 08/11/2010, 19:25
 
Fecha de Ingreso: noviembre-2010
Mensajes: 30
Antigüedad: 13 años, 5 meses
Puntos: 0
Respuesta: Problema con contenido HTML en una variable.

Cita:
Iniciado por spider_boy Ver Mensaje
Es extraño. Si copias y pegas el código debería ser lo mismo que hacer un echo.

Copié y pegué el código que muestras y no me muestra las imágenes. ¿Estás seguro que la URL está bien? Quizá al hacer echo tienes otro código, y el código generado es distinto, no lo sé.

Al probar los correos que envías, ¿los has probado desde otra máquina que no sea tu PC? ¿Tu server es tu PC local? ¿El código que llega al correo y que se interpreta en el WYSIWYG es idéntico al que pegaste acá en el foro?
Esta mañana tuve que borrar las imágenes por unas pruebas que tuve que hacer. Las mismas están, o mejor dicho, estaban alojadas en el servidor del laburo.

Los correos los probé desde varias PC y se ven perfecto. El código que se envía al correo, el que se encuentra en la variable, el que coloque acá en el foro y el que pego en el HTML (que no funciona) es exactamente el mismo.

De todas formas creo que el culpable de todo el Firefox, probé el sistema con Opera y Chrome, y funciona correctamente.

Rarisimo.

Gracias por tu tiempo y tu ayuda.

Etiquetas: contenido, html, variables
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 22:38.