• Publicidad

Ejecutar scripts de Perl desde una página web

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

Notapor explorer » 2006-10-19 18:15 @802

Yo uso Perl en exclusiva desde hace 3 años. Sí que vivo con él :-)

Para el tema de los scripts, puedes hacer que la petición al cgi se active por medio de un evento JavaScript tipo OnMouseClick, con un valor de retorno 'false' y además que en el 'action' de los form no lleve a ningún sitio. De esa manera ejecutarás los scripts cgi pero la página no se moverá.

En cuanto a lo de volver a una determinada página, podrías usar el método de siempre, el 'redirect'.
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

Publicidad

Notapor TELCO71 » 2006-10-20 11:32 @522

La pregunta ahora sería ... ¿¿ es necesario que el cliente que lo ejecute desde su browser tenga que instalar algún plugin o algo de java en su pc ??
Y la otra es cómo implementar lo de javascript.
El CGI ya lo tengo ...
Sintáxis: [ Descargar ] [ Ocultar ]
  1. <form method=post action="cgi-bin/DESACTIVAR.pl"> 
  2. <input type=submit name="OPCION2" value="DESACTIVACION"> 
  3. </form> 

pero ¿¿ cómo lo hago en javascript ?? :oops:

¡¡ 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 TELCO71 » 2006-10-20 12:59 @583

Estimado Explorer ,


Coloqué el redirect en mi archivo de Perl y me muestra el siguiente error ... ¿¿ qué puede estar pasando ??

Código: Seleccionar todo
[Fri Oct 20 13:45:34 2006] [error] Undefined subroutine &main::redirect called at /usr/lib/cgi-bin/CAMBIO.pl line 99, <archivo_comandos> line 11., referer: http://10.10.2.10/SCRIPT.html
PEPINO:/var/log/apache2#


Estoy colocando la siguiente línea en mi script para que luego de ejecutarse ... regrese a la página que lo lanza...

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
print redirect('http://10.10.2.10/SCRIPT.html');
Coloreado en 0.002 segundos, usando GeSHi 1.0.8.4


¿¿ Que estoy haciendo mal ??

Saludos
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-21 12:37 @567

TELCO71 escribiste: pregunta ahora sería ... ¿¿ es necesario que el cliente que lo ejecute desde su browser tenga que instalar algún plugin o algo de java en su pc ??

Tiene que tener un navegador con JavaScript 1.2 (es decir, casi cualquiera).

TELCO71 escribiste:pero ¿¿ cómo lo hago en javascript ?? :oops:

Hay varias formas de hacerlo. La siguiente captura el evento onClick de un input para ejecutar una asignación.

Código: Seleccionar todo
<form>
  <input type="button" value="pincha aqui" onclick="Javascript: top.document.getElementById('caja').value = 'http://www.google.com/';">
  <input id="caja" type="text" value="URL" >
</form>
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 explorer » 2006-10-21 13:09 @589

TELCO71 escribiste:Estoy colocando la siguiente línea en mi script para que luego de ejecutarse ... regrese a la página que lo lanza...

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
print redirect('http://10.10.2.10/SCRIPT.html');
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4


¿¿ Que estoy haciendo mal ??

Pues... que no estás usando el módulo CGI, que es donde está definida la función 'redirect'.

En lugar de eso, lee la respuesta de kidd a este problema, en este mismo foro:
viewtopic.php?t=464

Es recomendable que veas también más respuestas del tema:
viewtopic.php?t=523

Hay más. Usa el sistema de búsqueda por la palabra 'redirect'.
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-23 08:50 @410

Estimado Explorer , :D

Instalé el módulo de CGI que era lo que me faltaba ... pero sigue sin abrirme la página luego de ejecutar el script ... o sea que lo que quiero es que luego que se ejecute se redirija a una página determinada y que no quede en la página en donde se ejecutó el script.
Adjunto los resultados en ambos casos. ¿¿¿ Qué puede estar pasando ??? :oops:

Saludos :oops:
TELCO



Lo que coloco dentro del script :
_________________________________


Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
use CGI qw/:standard/;


print redirect('http://10.10.2.10/index.html');
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4





Resultado del script :
______________________

Código: Seleccionar todo
#wr Building configuration... [OK] AT-001#exit pattern match read eof Status: 302 Found Location: http://10.10.2.10/index.html




Colocando esto en el Script :
_____________________________


Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
use CGI qw/:standard/;


print redirect(-uri=>'http://10.10.2.10/index.html',
                           -nph=>1,
                           -status=>301);
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4

Resultado del script :
______________________

Código: Seleccionar todo
HTTP/1.1 301 Server: 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 Status: 301 Date: Mon, 23 Oct 2006 13:34:37 GMT Location: http://10.10.2.10/index.html
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-23 10:04 @461

Qué cosas más raras...

CGI viene instalado por defecto en todas las distribuciones Perl, así que me sorprende que lo hayas tenido que instalar...

Y redirect devuelve las líneas:
Código: Seleccionar todo
Status: 302 Found
Location: http://10.10.2.10/index.html

al navegador del usuario, y será éste el que haga la redirección a la nueva dirección. Eso quiere decir que el script SÓLO ha de imprimir esas líneas. Nada más. Ni nada antes, ni siquiera las cabeceras HTTP.

Un ejemplo que está puesto en http://www.joaquinferrero.com/~atari/cg ... edirect.pl :
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
#!/usr/bin/perl
use CGI ':standard';
print redirect( 'http://www.google.com.pe/' );
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4
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-23 10:45 @489

Estimado Explorer , :lol:

Ya logré hacerlo funcionar con la siguiente instrucción : :D

print "<meta http-equiv=\"REFRESH\" content=\"0; URL=http://www.google.com.ar\">";

Con el resto de las probé no hubo caso ... :oops:
al poner esta instrucción ...

print "<meta http-equiv=\"REFRESH\" content=\"0; URL=http://www.google.com.ar\">";

se realiza la redirección correctamente ... luego de ejecutar el script . O sea que funciona perfectamente :lol:

Agradezco mucho como siempre tu excelente predisposición con las inquietudes de todos los usuarios novatos de Perl.

Saludos y gracias !!
TELCO :wink:

P.D: nos vemos en mi siguiente problema jejeje :P
Avatar de Usuario
TELCO71
Perlero nuevo
Perlero nuevo
 
Mensajes: 48
Registrado: 2006-08-10 10:43 @488
Ubicación: Buenos Aires / Argentina

Notapor explorer » 2007-01-23 20:27 @893

Ya lo ví... estás enviando las cabeceras junto con el redirect().

No has de hacer eso. Si quieres hacer un redirect(), SÓLO debes enviar el redirect, no llamar antes a header().
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

Anterior

Volver a Web

¿Quién está conectado?

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