Foros del Web » Programando para Internet » PHP »

Como meter variable en una URL

Estas en el tema de Como meter variable en una URL en el foro de PHP en Foros del Web. Buenas tengo una pagina en la que hago una plantilla y la quiero mandar a otra pagina para que me saque un PDF(con tcpdf) y ...
  #1 (permalink)  
Antiguo 01/04/2011, 02:30
 
Fecha de Ingreso: marzo-2010
Mensajes: 102
Antigüedad: 14 años, 1 mes
Puntos: 2
Como meter variable en una URL

Buenas tengo una pagina en la que hago una plantilla y la quiero mandar a otra pagina para que me saque un PDF(con tcpdf) y me lo muestre.


Pero tengo un problema y es que al intentar meter la variable, que contiene el codigo html de la plantilla, en la URL se me muestra en la pantalla la plantilla en si y cuando forma el pdf pues solo salen 3 palabras.

Haber si me pueden ayudar. Pongo el codigo haber si asi me pueden ayudar mejor:

Código PHP:
Ver original
  1. <?
  2. $plantilla="<p>A la Atenci&oacute;n de<span style="color: #4682b4;">&nbsp;</span></p>
  3. <p><span style="color: #4682b4;">D. Nombre_cliente Apellidos_cliente</span></p>
  4. <p><strong>Empresa_cliente</strong></p>
  5. <p>Texto de ejemploooooooooooooo</p>";
  6. ?>
  7.  
  8. <meta http-equiv="Refresh" content="0.1;URL=pdf/examples/imprimir2.php?plantilla=<? echo $plantilla; ?>" />

Haber si me pueden hechar un cable que me hace mucha falta.

Un saludo y gracias
  #2 (permalink)  
Antiguo 01/04/2011, 04:37
 
Fecha de Ingreso: abril-2011
Mensajes: 13
Antigüedad: 13 años
Puntos: 1
Respuesta: Como meter variable en una URL(URGENTE)

Concatena las cadenas, con el punto "."

www.google.es <? . $variable ?>

Creo que era así, sino dimelo!!

saludoss
  #3 (permalink)  
Antiguo 01/04/2011, 05:32
Avatar de zibor  
Fecha de Ingreso: diciembre-2006
Mensajes: 80
Antigüedad: 17 años, 4 meses
Puntos: 1
Respuesta: Como meter variable en una URL(URGENTE)

posibles soluciones....

Puedes codificar la variable por ejemplo con base64_code($var) y así no mostrará el resultado en la url y al recibirlo en la otra web la descodificas con base64_decode($var)...
Con esto puede que te ahorres que el navegador interprete mal u omita el codigo html que le pasas por la URL...

Otra solución, sería que pasaras esa variable por un formulario. utilizas un input de type hidden(oculto) y en value le pones la variable. Te ahorras que salga tu plantilla este visible por URL....

Te aconsejo la opción del formulario.

saludos.
__________________
Picando código...!!!
  #4 (permalink)  
Antiguo 01/04/2011, 06:41
 
Fecha de Ingreso: julio-2010
Ubicación: Galicia
Mensajes: 91
Antigüedad: 13 años, 9 meses
Puntos: 9
Respuesta: Como meter variable en una URL(URGENTE)

Para poner variables en una URL hay que concatenarlas, si, <?php echo'<a href="http://www.direccion.com?var='.$var.'&otra='.$otravar.'"> Link</a>'; ?>
espero que te sea de ayuda, también puedes hacerlo sin poner el enlace en el echo, abriendo php solo para poner la variable:
http://www.direccion.com?var=<?php echo''.$var.''; ?>&otravar=<?php echo''.$otravar.''; ?>
Vendría siendo algo así XD espero que te sirva de algo, saludos!
__________________
Si algo te sirve de ayuda no dudes en dar Karma, a tí no te cuesta nada y a mi me haces feliz =D
  #5 (permalink)  
Antiguo 04/04/2011, 03:48
 
Fecha de Ingreso: marzo-2010
Mensajes: 102
Antigüedad: 14 años, 1 mes
Puntos: 2
Respuesta: Como meter variable en una URL(URGENTE)

Voy a contestaros por usuarios haber como solucionamos esto que sigue sin ir jejej:

zibor: he probado a codificarlo y despues codificarlo con base64_encode y base64_decode pero al montar el PDF si no lo decodifico sale texto con caracteres extraños(solo para probar) y cuando lo decodifico pues me sale en blanco no se que puede pasar.

Lo del formulario no lo he probado porque no se la forma de enviar un formulario sin que el usuario le de al boton submit.

Narxon: he probado tus 2 soluciones y sin embargo se me sigue mostrando en la pagina y cuando monta el pdf me sale cortado.

Tambien he probado a codificarlo/decodificarlo con urlencode/urldecode que lo he visto buscando en google y me lo hace bien pero sin embargo no me respeta los colores de la plantilla en si ni tampoco me muestra las imagenes.

Haber si me pueden dar una solucion.

Un saludo y gracias
  #6 (permalink)  
Antiguo 04/04/2011, 04:43
Avatar de zibor  
Fecha de Ingreso: diciembre-2006
Mensajes: 80
Antigüedad: 17 años, 4 meses
Puntos: 1
Respuesta: Como meter variable en una URL(URGENTE)

Lo que te propongo es que para generar ese PDF con dicha plantilla crees un formulario, con su boton submit el cual sea el unico campo visible en la web.

Mi idea es que para seguridad, la plantilla que mandas a dicha web, la codifiques para mandarla...

Código:
<?php
// codifico primero el contenido de la plantilla. La variable $plantilla contiene contiene lo que su nombre indica....
$plantilla = base64_code($plantilla);
?>

<form method="POST" action="pdf/examples/imprimir2.php">
         <input type="hidden" name="plantilla" value="<?php echo $plantilla;?> "/>
         <input type="submit" name="generarPDF" />
</form>
Como vemos en el codigo anterior, codifico la plantilla, creo un formulario que tiene 2 campos. El primer input tiene type "hidden" que quiere decir que es un campo oculto, es decir no es visible en la web y un input submit, por lo que en tu web solo veras dicho boton, que dandole estilo con css puedes generar un boton bonito.

Cuando se pulse en el botón en cuestion... te redirigirá el campo oculto donde le estamos pasando en el value la plantilla.

Código:
<?php
// Recogemos lo que el formulario nos manda al pulsar el botón submit.
$plantilla = $_POST["plantilla"];

//recuerda que lo que recibimos del formulario, esta codificado por lo que debemos descodificarlo antes de tratar el contenido.
$plantilla = base64_decode($plantilla);

//Mostramos el contenido $plantilla que su contenido será el generado... yá solo debes tratarlo, como te convenga.
echo $plantilla;
?>
El codigo anterior hace referencia al archivo que recogerá los datos del formulario al pulsar el botón.

Espero solucionarte la papeleta.
Para cualquier duda.... exponla
__________________
Picando código...!!!
  #7 (permalink)  
Antiguo 04/04/2011, 04:47
 
Fecha de Ingreso: marzo-2010
Mensajes: 102
Antigüedad: 14 años, 1 mes
Puntos: 2
Respuesta: Como meter variable en una URL(URGENTE)

El caso es que el usuario no puede darle al boton del formulario y se tiene que generar solo. Ese es mi problema xD
  #8 (permalink)  
Antiguo 04/04/2011, 05:08
Avatar de zibor  
Fecha de Ingreso: diciembre-2006
Mensajes: 80
Antigüedad: 17 años, 4 meses
Puntos: 1
Respuesta: Como meter variable en una URL(URGENTE)

Este es tu propio codigo pero con algunos matices de mas.
Para empezar, cuando utilizas php al abrir la parte del codigo php, acostumbrate a poner siempre "<?php" sin las comillas logicamente. Tengo entendido que con cosas de javascript poner solo "<?" puede dar conflictos.
Despues simplemente he codificado la variable que pasa por url, asi que dicha url, aparecera una ristra de caracteres raros....

Código:
<?php
$plantilla="<p>A la Atenci&oacute;n de<span style="color: #4682b4;">&nbsp;</span></p>
<p><span style="color: #4682b4;">D. Nombre_cliente Apellidos_cliente</span></p>
<p><strong>Empresa_cliente</strong></p>
<p>Texto de ejemploooooooooooooo</p>";

//codifico la variable $plantilla
$plantilla = base64_code($plantilla);
?>
*
<meta http-equiv="Refresh" content="0.1;URL=pdf/examples/imprimir2.php?plantilla=<?php echo $plantilla; ?>" />
en el archivo imprimir2.php
la primera linea aparte de la abertura de php seria

Código:
<?php
//recogo mediante GET la variable plantilla de la url y la descodifico para poder entender su contenido.
$plantilla = base64_encode($_GET["plantilla"]);

// debes de ver el contenido como lo tenias antes....
echo $plantilla;
?>
__________________
Picando código...!!!
  #9 (permalink)  
Antiguo 04/04/2011, 05:42
 
Fecha de Ingreso: marzo-2010
Mensajes: 102
Antigüedad: 14 años, 1 mes
Puntos: 2
Respuesta: Como meter variable en una URL(URGENTE)

Practicamente he copiado y pegado el codigo que me has puesto ahi solamente cambiando el base64_code por base64_decode porque si lo ponia como code pues me daba error y al buscarlo vi que era asi.

De todas formas cuando hago el echo en el archivo final me sale la siguiente cadena:

77+9WgLXp3IqGnLvv71e77+916zvv73vv73vv70pXnLvv71o77 +977+977+92b5cJ27vv71/77+977+977+977+9

Solamente he puesto la siguiente cadena html en el primer archivo:

$plantillaT="<p>A la Atenci&oacute;n de<span style='color: #4682b4;'>&nbsp;</span></p>";

Asi que tu me diras que parece que controlas el tema.

Un saludo y gracias por tu ayuda y atencion
  #10 (permalink)  
Antiguo 04/04/2011, 05:55
Avatar de zibor  
Fecha de Ingreso: diciembre-2006
Mensajes: 80
Antigüedad: 17 años, 4 meses
Puntos: 1
Respuesta: Como meter variable en una URL(URGENTE)

Para codificar primero $plantilla es base64_encode($var); cuando se recupera se descodifica con base64_decode($var).

Mira a ver así....

Pd. Por lo que entendido en tu respuesta y yo que aparte me he equivocado al codificar la variable. es que as descodificado directamente el contenido real....
__________________
Picando código...!!!
  #11 (permalink)  
Antiguo 04/04/2011, 07:33
Avatar de zibor  
Fecha de Ingreso: diciembre-2006
Mensajes: 80
Antigüedad: 17 años, 4 meses
Puntos: 1
Respuesta: Como meter variable en una URL(URGENTE)

He estado mirando tu problema y bueno, e encontrado porque con mi forma tampoco funcionaba.
El problema que tiene es que al pasarle codigo HTML por la URL, quizas el navegador no interprete el codigo HTML como nosotros queremos, supongo que omitira las etiquetas.

esta es la solución y a mi me ha funcionado.

Código:
<?php
$plantilla="<p>A la Atenci&oacute;n de<span style='color: #4682b4;'>&nbsp;</span></p><p><span style='color: #4682b4;'>D. Nombre_cliente Apellidos_cliente</span></p><p><strong>Empresa_cliente</strong></p><p>Texto de ejemploooooooooooooo</p>";

//codifico la variable $plantilla
//con la funcion HTMLSPECIALCHARS le estoy indicando que no me quite el codigo HTML
$plantilla = base64_encode(htmlspecialchars($plantilla));
?>
<!-- Recuerda cambiar el nombre del archivo donde redirecciona "meta" -->
<meta http-equiv="Refresh" content="0.1;URL=2.php?plantilla=<?php echo $plantilla;?>" />
se recoge así.

Código:
<?php
//recogo mediante GET la variable plantilla de la url y la descodifico para poder entender su contenido.
$p = $_GET["plantilla"];
$plantilla = base64_decode($p);

// debes de ver el contenido como lo tenias antes....
echo "Codigo HTML: ".htmlspecialchars_decode($plantilla);
?>
__________________
Picando código...!!!
  #12 (permalink)  
Antiguo 04/04/2011, 08:50
 
Fecha de Ingreso: marzo-2010
Mensajes: 102
Antigüedad: 14 años, 1 mes
Puntos: 2
Respuesta: Como meter variable en una URL(URGENTE)

Me funciona perfectamente y es justamente lo que queria.

Lo malo es lo siguiente: las plantillas reales(no el ejemplo que ponemos) son demasiado grandes(4000 caracteres) y no me deja pasarlas por la URL.

Asi que despues de tanto tira y afloja al final no me sirve pero me servira para un proyecto futuro asi que muchas gracias por tu tiempo compañero si te pasas por Sevilla te invito a una cerveza y chicharrones jejejeje

Un saludo y gracias
  #13 (permalink)  
Antiguo 04/04/2011, 08:56
Avatar de zibor  
Fecha de Ingreso: diciembre-2006
Mensajes: 80
Antigüedad: 17 años, 4 meses
Puntos: 1
Respuesta: Como meter variable en una URL(URGENTE)

Porque no le generas directamente el pdf y que se lo descargue el cliente?

pd. te he dejado un mensaje en tu perfil...asrael
__________________
Picando código...!!!
  #14 (permalink)  
Antiguo 04/04/2011, 09:57
 
Fecha de Ingreso: marzo-2010
Mensajes: 102
Antigüedad: 14 años, 1 mes
Puntos: 2
Respuesta: Como meter variable en una URL

Y ahora me a surgido otro problema.

Se me ha ocurrido meter la plantilla, ya rellena con los datos buenos, en una tabla de mi BD ya rellena pero al hacer el insert no me lo inserta. Este es el codigo:

Código PHP:
Ver original
  1. $plantilla="<p>A la Atenci&oacute;n de<span style='color: #4682b4;'>&nbsp;</span></p><p><span style='color: #4682b4;'>D. Nombre_cliente Apellidos_cliente</span></p><p><strong>Empresa_cliente</strong></p><p>Texto de ejemploooooooooooooo</p>";
  2.  
  3. mysql_query("INSERT INTO plantillas (email,plantilla) VALUES ('$email','$plantilla')");

Pero no me lo mete en la BD sabes porque?
  #15 (permalink)  
Antiguo 04/04/2011, 10:29
 
Fecha de Ingreso: marzo-2010
Mensajes: 102
Antigüedad: 14 años, 1 mes
Puntos: 2
Respuesta: Como meter variable en una URL

Da igual ya lo he sacado de otra forma.


Un saludo
  #16 (permalink)  
Antiguo 04/04/2011, 12:46
Avatar de zibor  
Fecha de Ingreso: diciembre-2006
Mensajes: 80
Antigüedad: 17 años, 4 meses
Puntos: 1
Respuesta: Como meter variable en una URL

Para hacer esa consulta te faltaba en el mysql_query("sentencia insert...",$conexion);
__________________
Picando código...!!!
  #17 (permalink)  
Antiguo 05/04/2011, 03:47
 
Fecha de Ingreso: marzo-2010
Mensajes: 102
Antigüedad: 14 años, 1 mes
Puntos: 2
Respuesta: Como meter variable en una URL

Al final lo he conseguido sacar metiendo las plantillas ya rellenas en la BD, codificadas de antes y metiendo la variable en el pdf.


Con esto me funciona perfectamente si meto una plantilla que solo contenga texto si meto alguna imagen me da el siguiente error:

TCPDF ERROR: [Image] Unable to get image: /tmp/mska_PRPSHs

Estoy usando la libreria para PDF : TCPDF

Y la ruta que uso en el html que pongo para las imagenes esta completo:

http://www.mipagina.es/img/laimagen.png

Pero sin embargo si pongo alguna imagen que sea .jpg no me da error.

¿Saben porque es eso?

Un saludo y gracias
  #18 (permalink)  
Antiguo 05/04/2011, 05:03
Avatar de zibor  
Fecha de Ingreso: diciembre-2006
Mensajes: 80
Antigüedad: 17 años, 4 meses
Puntos: 1
Respuesta: Como meter variable en una URL

No conozco la libreria TCPDF (creo, aunque utilice algo en su dia, pero solo texto).

Por lo que he leido de tu comentario, y sin conocimiento de causa, parece que solo está implemetado imagenes JPG y quizas no te admitan otros formatos.... :P
__________________
Picando código...!!!
  #19 (permalink)  
Antiguo 05/04/2011, 05:11
 
Fecha de Ingreso: marzo-2010
Mensajes: 102
Antigüedad: 14 años, 1 mes
Puntos: 2
Respuesta: Como meter variable en una URL

Si yo tambien he llegado a eso lo malo es que no se como solucionarlo jejeje.


Voy a abrir otro tema porque esta duda ya no tiene nada que ver con la del tema jeje

Gracias por tu ayuda un saludo

Etiquetas: 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:28.