Comunidad PHPeros

Lenguajes => PHP => Mensaje iniciado por: wolvelopez en 15 de Mayo de 2015, 09:47:01 am

Título: Problema con comillas
Publicado por: wolvelopez en 15 de Mayo de 2015, 09:47:01 am
Hola compañeros, llevo tiempo con PHP aparcado y hoy en un pequeño proyecto me he atascado.
El caso es que quiero guardar en una variable de PHP codigo de html para posterioemente pasarlo a otra pagina de php mediante POST y no hay manera, se me corta con las comillas. He intentado incluso poniendo \ delante de las comillas y nada.
Un pequeño ejemplo:

Código: [Seleccionar]
<?php 
$html 
=

    
'
<html><body>
<img src="images/logo.gif" alt="logo" />
<p><h1>CONTRATO DE TRABAJO DE ARTISTAS EN ESPECTACULO PÚBLICO</h1></p>
<p>
 Reunidos en " . $_POST['
pueblo'] . "
     a, <input type="text" name="dia" size="2"/>
         de <input type="text" name="mes" size="10"/>
         de <input type="text" name="ano" size="4"/>
</p>
</body></html>
'
?>

<form action="generar.php" method="post" accept-charset="utf-8">
    <input type="hidden" name="html" value="<?php echo $html?>" />
    <input type="submit"/>
</form>


Ahora lo recogo en el otro php para generar un pdf con DOMPDF de esa variable $html
Código: [Seleccionar]
if(isset($_POST['html'])){

}else{
    $html = '';
}

Y estoy debugeando y la variable $html trae esto solo:

<html><body>
<img src=

¿Alguien me orienta un poco?
Saludos y gracias.
Título: Re:Problema con comillas
Publicado por: autorojo en 16 de Mayo de 2015, 06:05:22 am
Me resulta bastante extraño lo que estás intentando hacer. Si querés explicarte más y pasar parte del generar.php para comprender mejor tus intenciones sería más fácil ayudarte. De todos modos, probé tu código y me devuelve el siguiente error:

Parse error: syntax error, unexpected 'pueblo' (T_STRING) in C:\xampp2\htdocs\test.php on line 9

Ese error se debe a que no escapaste las comillas simples de 'pueblo'. Tendría que quedar \'pueblo\' para que no devuelva error PHP. De todas formas, aún arreglando el error de sintaxis PHP, al probar el código me generó error HTML la página, así que intenté hacerlo de esta manera.

Código: [Seleccionar]
<form action="generar.php" method="post" accept-charset="utf-8"/>
    <textarea style="display: none;" name="html"/><html><body>
<img src="images/logo.gif" alt="logo" />
<p><h1>CONTRATO DE TRABAJO DE ARTISTAS EN ESPECTACULO PÚBLICO</h1></p>
<p>
 Reunidos en " . $_POST['pueblo'] . "
     a, <input type="text" name="dia" size="2"/>
         de <input type="text" name="mes" size="10"/>
         de <input type="text" name="ano" size="4"/>
</p>
</body></html></textarea>
    <input type="submit">
</form>

Me funcionó perfectamente. ¿Qué te parece?

A propósito, ¿por qué usas /> al final de cada input?
Título: Re:Problema con comillas
Publicado por: SoyJoaquin. en 19 de Mayo de 2015, 20:13:45 pm
Me resulta bastante extraño lo que estás intentando hacer. Si querés explicarte más y pasar parte del generar.php para comprender mejor tus intenciones sería más fácil ayudarte. De todos modos, probé tu código y me devuelve el siguiente error:

Parse error: syntax error, unexpected 'pueblo' (T_STRING) in C:\xampp2\htdocs\test.php on line 9

Ese error se debe a que no escapaste las comillas simples de 'pueblo'. Tendría que quedar \'pueblo\' para que no devuelva error PHP. De todas formas, aún arreglando el error de sintaxis PHP, al probar el código me generó error HTML la página, así que intenté hacerlo de esta manera.

Código: [Seleccionar]
<form action="generar.php" method="post" accept-charset="utf-8"/>
    <textarea style="display: none;" name="html"/><html><body>
<img src="images/logo.gif" alt="logo" />
<p><h1>CONTRATO DE TRABAJO DE ARTISTAS EN ESPECTACULO PÚBLICO</h1></p>
<p>
 Reunidos en " . $_POST['pueblo'] . "
     a, <input type="text" name="dia" size="2"/>
         de <input type="text" name="mes" size="10"/>
         de <input type="text" name="ano" size="4"/>
</p>
</body></html></textarea>
    <input type="submit">
</form>

Me funcionó perfectamente. ¿Qué te parece?

A propósito, ¿por qué usas /> al final de cada input?

De la misma forma en la que se usa en cualquier otra etiqueta sin cierre aparente.
Se usa para indicarle al IDE, navegador o cualquier otro cliente que se encargue de estructurar el código el final de una etiqueta sin tag de cierre. Aunque parezca increíble, hay muchos de estos clientes que se "confunden" en su ejecución. Doy como ejemplo Notepad++, reconocido editor de código.