• Publicidad

Ejecutar scripts de Perl desde una página web

Todo lo relacionado con el desarrollo Web con Perl: desde CGI hasta Mojolicious

Ejecutar scripts de Perl desde una página web

Notapor TELCO71 » 2006-10-11 12:29 @562

Estimados :D ,

Necesito ejecutar dos scripts que tengo hechos en Perl desde una página web. La idea es ejecutarlo desde una simple página web en donde se tenga que loguear un usuario previamente. Y que al hacer un click sobre el botón 1 se ejecute el determinado script_1 y lo mismo con el 2.
¿¿¿ Alguien ya lo ha realizado ??? ¿Tienen algún modelo de como realizarlo?. Sólo me interesa el desarrollo web ya que los scripts ya los tengo.

¡ Saludos y gracias ! :wink:
TELCO
Avatar de Usuario
TELCO71
Perlero nuevo
Perlero nuevo
 
Mensajes: 48
Registrado: 2006-08-10 10:43 @488
Ubicación: Buenos Aires / Argentina

Publicidad

Notapor monoswim » 2006-10-11 13:47 @616

No entiendo la duda, es para loggearse ? entonces poné un formulario donde el action sea la URL del script...

Si es un link hacelo así
<a href="http://www.miweb.com/cgi-bin/script.pl">click</a>

Simepre dentro de cgi-bin...Eso lo sabes no ?

Saludos
MonoSwim
Perl Programming Language
Avatar de Usuario
monoswim
Perlero nuevo
Perlero nuevo
 
Mensajes: 452
Registrado: 2003-11-18 16:13 @717
Ubicación: Buenos Aires

Notapor TELCO71 » 2006-10-11 14:26 @643

Estimado monoswim :lol: ,

¡¡¡ Agradezco mucho tu respuesta !!!
Ya tengo la página con los botones de las opciones. Necesito saber cómo vincular los botones de las opciones con los script. Que cuando se pulse sobre el botón de la OPCION1 se ejecute el script 1 y lo mismo con el 2.

Y por otra parte necesito cómo hacer para ponerle seguridad de login con user y pass a la paginita.

Mi simple código es el siguiente :
Sintáxis: [ Descargar ] [ Ocultar ]
  1. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> 
  2. <HTML> 
  3. <HEAD> 
  4. <TITLE> PAGINA DE EJECUCION DE SCRIPTS </TITLE> 
  5. </HEAD> 
  6.  
  7. <BODY> 
  8. <input type=submit name="boton1" value="OPCION1"> 
  9.  
  10. <form method=post action="cgi-bin/SCRIPT1.pl"> 
  11.  
  12. <input type=submit name="boton2" value="OPCION2"> 
  13.  
  14. <form method=post action="cgi-bin/SCRIPT2.pl"> 
  15.  
  16. </BODY> 
  17. </HTML> 


¡ Saludos y gracias ! :wink:
TELCO
Avatar de Usuario
TELCO71
Perlero nuevo
Perlero nuevo
 
Mensajes: 48
Registrado: 2006-08-10 10:43 @488
Ubicación: Buenos Aires / Argentina

Notapor kidd » 2006-10-11 16:11 @716

Hola:

Pues más o menos ahí ibas con el html que estás usando. Nada más le hacemos unos cambios y listo:

Sintáxis: [ Descargar ] [ Ocultar ]
  1. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">  
  2. <HTML>  
  3. <HEAD>  
  4. <TITLE> PAGINA DE EJECUCION DE SCRIPTS </TITLE>  
  5. </HEAD>  
  6.  
  7. <BODY>  
  8.  
  9. <form method=post action="cgi-bin/SCRIPT1.pl">  
  10. <input type=submit name="boton1" value="OPCION1">  
  11. </form> 
  12.  
  13. <form method=post action="cgi-bin/SCRIPT2.pl"> 
  14. <input type=submit name="boton2" value="OPCION2">  
  15. </form> 
  16.  
  17. </BODY>  
  18. </HTML> 


Son dos formularios distintos cada uno con su respectivo botón de submit.


Saludos
Uriel Lizama Perl programmer fundador de Perl en Español
Perl Programming Language
Avatar de Usuario
kidd
Creador de Perl en Español
Creador de Perl en Español
 
Mensajes: 1166
Registrado: 2003-10-15 16:52 @744
Ubicación: México

Notapor TELCO71 » 2006-10-11 17:55 @788

Estimado kidd , :lol:

He copiado los scripts en el directorio del Server Linux Debian

"/usr/share/apache2/default-site/cgi-bin/" y están todos los scripts puestos con permisos de ejecución (chmod 755).
Cuando oprimo los botones desde la página web me salta error 404 ... ¿¿ qué puede ser lo que está pasando ??

Veo desde la página que los intenta ejecutar.

Probé poniendole en mi página ponerle:

SALIDA DESDE EL BROWSER:
Sintáxis: [ Descargar ] [ Ocultar ]
  1. <form method=post action="cgi-bin/perl CAMBIO_BT.pl"> 
  2. <input type=submit name="OPCION1" value="MIGRAR"> 
  3.  
  4. http://172.20.10.3/cgi-bin/perl%20CAMBIO_BT.pl 


ó

Sintáxis: [ Descargar ] [ Ocultar ]
  1. <form method=post action="cgi-bin/CAMBIO_BT.pl"> 
  2. <input type=submit name="OPCION1" value="MIGRAR"> 


SALIDA DESDE EL BROWSER :
Sintáxis: [ Descargar ] [ Ocultar ]
  1. http://172.20.10.3/cgi-bin/CAMBIO_BT.pl 



Y no ejecuta el script y me dá error 404 como resultado.

¿¿¿ Que estoy haciendo mal ???

¡ Saludos y gracias ! :wink:
TELCO
Avatar de Usuario
TELCO71
Perlero nuevo
Perlero nuevo
 
Mensajes: 48
Registrado: 2006-08-10 10:43 @488
Ubicación: Buenos Aires / Argentina

Notapor explorer » 2006-10-11 18:14 @801

¿Seguro que ese es el directorio? En mi Debian es en /usr/lib/cgi-bin

Repasa la configuración del Apache...

Y lo del perl%20.... no tiene sentido...

Repasa los logs del apache. Encontrarás más pistas.
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14486
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Notapor TELCO71 » 2006-10-12 07:52 @369

Estimado Explorer :D ,

Moví mis scripts al directorio que me indicaste ( /usr/lib/cgi-bin/ ) y efectivamente ahora los está procesando :lol: .

Pero me arroja el siguiente error desde el browser:

Código: Seleccionar todo
500 Internal Server Error

http://172.20.10.3/cgi-bin/CAMBIO.pl

Internal Server Error
The server encountered an internal error or misconfiguration and was unable to complete your request.

Please contact the server administrator, webmaster@localhost and inform them of the time the error occurred, and anything you might have done that may have caused the error.

More information about this error may be available in the server error log.
--------------------------------------------------------------------------------
Apache/2.0.54 (Debian GNU/Linux) mod_python/3.1.3 Python/2.3.5 PHP/4.3.10-16 mod_perl/1


Errores dentro del LOG del Apache2 " Error.log "
Código: Seleccionar todo
[Thu Oct 12 06:25:07 2006] [notice] Apache/2.0.54 (Debian GNU/Linux) mod_python/3.1.3 Python/2.3.5 PHP/4.3.10-16 mod_perl/1.999.21 Perl/v5.8.4 configured -- resuming normal operations
[Thu Oct 12 09:36:02 2006] [error] [client 172.20.10.4] malformed header from script. Bad header=##############################: CAMBIO.pl, referer: http://172.20.10.3/
[Thu Oct 12 09:36:41 2006] [error] [client 172.20.10.4] malformed header from script. Bad header=##############################: VOLVER.pl, referer: http://172.20.10.3/
[Thu Oct 12 09:38:40 2006] [error] [client 172.20.10.4] malformed header from script. Bad header=##############################: CAMBIO_BT.pl, referer: http://172.20.10.3/
SERVER1:/var/log/apache2#


Ejecutando los scripts en forma manual no me arrojan ningún error.

¿ Qué está pasando ?

¡¡ Saludos y muchas gracias !! :wink:
TELCO
Avatar de Usuario
TELCO71
Perlero nuevo
Perlero nuevo
 
Mensajes: 48
Registrado: 2006-08-10 10:43 @488
Ubicación: Buenos Aires / Argentina

Notapor explorer » 2006-10-12 08:04 @378

Ya lo dice el error: la primera línea no es '#!/usr/bin/perl'

El tema del 'shebang' (los dos primeros caracteres de un script) es crucial para el sistema operativo, y saber de qué tipo de ejecutable se trata. Sin ellos, se negará a ejecutarlo.

Ejecutando los scripts de forma 'manual', en realidad estás haciendo:
Código: Seleccionar todo
perl CAMBIO.pl
con lo que ya le estás diciendo al sistema operativo que ha de ser perl (el intérprete de Perl) el que debe hacerse cargo de ese fichero llamado CAMBIO.pl.

Si, en cambio, pones como primera línea el 'shebang' y el path al intérprete de perl, el propio sistema operativo sabrá cómo ejecutarlo. Podrás ejecutarlo 'a mano' desde la línea de comandos con un simple
Código: Seleccionar todo
./CAMBIO.pl
o
Código: Seleccionar todo
CAMBIO.pl
que, además, será así como lo intente ejecutar también el servidor web.
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14486
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Notapor TELCO71 » 2006-10-12 08:18 @388

¡¡¡ Ya lo solucioné Explorer !!! :lol:
¡¡ Con la siguiente línea al comienzo del script !!
¡¡ Muchisimas gracias por tu predisposición y ayuda que siempre es la mejor !!

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
print "Content-type: text/html\n\n";
Coloreado en 0.002 segundos, usando GeSHi 1.0.8.4


Y es verdad ... siempre hay que consultar los logs .. jejej

Un abrazo. :wink:
Telco
Avatar de Usuario
TELCO71
Perlero nuevo
Perlero nuevo
 
Mensajes: 48
Registrado: 2006-08-10 10:43 @488
Ubicación: Buenos Aires / Argentina

Notapor explorer » 2006-10-12 08:25 @392

Bueno, pues al final no era lo que yo decía... :-(
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14486
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Siguiente

Volver a Web

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 0 invitados