• Publicidad

Inclusión de bibliotecas antes de llamar a un pl

¿Apenas comienzas con Perl? En este foro podrás encontrar y hacer preguntas básicas de Perl con respuestas aptas a tu nivel.

Re: Inclusión de bibliotecas antes de llamar a un pl

Notapor explorer » 2006-01-25 17:14 @760

slopal escribiste:Yo para llamar al sh hacía print"<img src="\/cgi-bin\/freq\/carrega_moduls_imatge.cgi" width="640" height="10">"; para que pintara la imagen directamente.

Haciendo un system("./carrega_moduls_imatge.cgi"); osystem("carrega_moduls_imatge.cgi"); (he probado las dos opciones por si hacia falta especificar que ejecute...) me sale el mismo error:

Insecure $ENV{PATH} while running with -T switch at /var/www-cgi/gralggen.lsi.upc.es/freq/freq.cgi line 249.
He visto esto otra vez y me parece que hay un error de concepto...

Si haces un print... desde un cgi, es para sacar un código html hacia una página web.

El cliente web a continuación solicitará una imagen ejecutando carrega_....cgi. Ese cgi debe generar una cabecera Content-Type del tipo image/png (creo que era así) y luego el contenido de la imagen.

Pero el caso del system() es distinto... ¿Quién está ejecutando el system()? ¿El cgi que ha llamado el cliente web? Pues en ese caso no funcionará de ninguna manera, pues el cgi debe devover al cliente web sólo un Content-Type. O una página HTML o un gráfico u otra cosa. Pero sólo uno.
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14480
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Publicidad

Notapor slopal » 2006-01-26 11:29 @520

Vale, vamos por partes, que me he hecho un cacao con tanta cosa... Empecemos de nuevo :roll:.

Me dijiste que hiciera esto para evitar el script sh.

explorer escribiste:Prueba con esto, pero no estoy muy seguro...
Código: Seleccionar todo
#/usr/bin/perl
$ENV{LD_LIBRARY_PATH} = "/usr/local/freetype-2.0.5/lib";
system("/usr/usuaris/it/gralggen/cgi-bin/freq/imatge.cgi.pl");


Pues como hay un system() por medio me sale el error...

Content-type: text/html
Software error:

Insecure $ENV{PATH} while running with -T switch at /var/www-cgi/gralggen.lsi.upc.es/freq/freq.cgi line 265.



:cry:

explorer escribiste:Si estás completamente seguro de que no existe, entonces el path que estás viendo será un path generado por el servidor web. ¿Quien te da el path? ¿El servidor web o el cgi si lo ejecutas diréctamente?


Sí, yo también he pensado que se generaba.. ¿pero puedo saber si me lo da el servidor o el cgi?

Gracias...
slopal
Perlero nuevo
Perlero nuevo
 
Mensajes: 78
Registrado: 2005-11-23 11:41 @528

Re: Inclusión de bibliotecas antes de llamar a un pl

Notapor explorer » 2006-01-26 17:19 @763

El error está en la línea 265 de freq.cgi.
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14480
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Notapor macgregor » 2006-01-27 11:08 @506

No sé si lo que te voy a decir va a hacer que te pierdas o te va a ayudar, pero tal vez podrías cargar la ruta de tus librerías poniendo esto en el principio de tu cgi
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. BEGIN
  2. {
  3.    unshift @INC, '/alabi/alaba/LSI=EDA=CACA/fiber=loc@/librerias';
  4. }
Coloreado en 0.003 segundos, usando GeSHi 1.0.8.4


o de esta otra manera:
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. push(@INC,'pwd','/alabi/alaba/LSI=EDA=CACA/fiber=loc@/librerias');
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4


La primera es más correcta.

Te digo esto porque es la forma que utilizo para cargar la ruta de las librerías y módulos que he creado yo o que he descargado y no se instalan para poder utilizarlas.

Espero haberte ayudado.

Un saludo.
MACGREGOR [TM]
Avatar de Usuario
macgregor
Perlero nuevo
Perlero nuevo
 
Mensajes: 80
Registrado: 2004-12-09 07:32 @355
Ubicación: españa

Notapor slopal » 2006-01-30 12:34 @565

Gracias a los dos.

El tema de ficheros de configuración del sistema no puedo tocarlo porque no tengo permisos así que me he puesto en contacto con un administrador a ver si me hace caso :oops:

Ya os diré cómo va...

P.D.: macgregor, ¡EDA no es tan terrible, hombre! XD
slopal
Perlero nuevo
Perlero nuevo
 
Mensajes: 78
Registrado: 2005-11-23 11:41 @528

Notapor slopal » 2006-01-30 14:04 @628

explorer escribiste: Lo harás con system("carrega_moduls_imatge.sh arg1 arg2 componentes de la lista");
Luego, en carrega...sh, en la línea que llamas a imatge.cgi.pl, lo haces con
Código: Seleccionar todo
/usr/usuaris/it/gralggen/cgi-bin/freq/imatge.cgi.pl "$*"
y de esa manera le estás pasando todos los argumentos a imatge.pl. Dentro de él, los lees accediendo al array @ARGV.


Por cierto, explorer, modificando esto un pelín, sin hacer system(), y sin arreglar la chapucilla me puedo apañar. Al menos hasta que me digan algo los del servidor.

MUCHÍSIMAS GRACIAS, YA ESTOY MÁS TRANQUILA :lol:
slopal
Perlero nuevo
Perlero nuevo
 
Mensajes: 78
Registrado: 2005-11-23 11:41 @528

Anterior

Volver a Básico

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 1 invitado