Ver Mensaje Individual
  #7 (permalink)  
Antiguo 07/11/2010, 19:52
GNULinux
 
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.