Perl en Español

  1. Home
  2. Tutoriales
  3. Foro
  4. Artículos
  5. Donativos
  6. Publicidad
 

Ejecutar scripts de Perl desde una página web
Ir a página Anterior  1, 2
 
Publicar nuevo tema   Responder al tema    Foros de discusión -> CGI
Mensaje Jue Oct 12, 2006 12:19 pm
explorer
Moderador
Moderador
Registrado: 24 Jul 2005
Mensajes: 4212
Ubicación: Valladolid, España
Responder citando

No estás llamando a ningún cgi para hacer la autenticación. Por favor, repasa los tutoriales.
Mensaje Jue Oct 12, 2006 3:12 pm
TELCO71
Perlero Nuevo
Perlero Nuevo
Registrado: 10 Ago 2006
Mensajes: 48
Ubicación: Buenos Aires / Argentina
Responder citando

Estimados ,

Encontré un tutorial con algo como esto ... pero no me funciona Crying or Very sad

Que estoy haciendo mal ??

Es algo tan sencillo como esto lo que necesito ... alguién implementó algo parecido ???

Luego de poner bien o mal la password me aparece la página en blanco ...

LOGIN.html :
____________

<form name="login" action="login.php" method="post">

Usuario: <input type="text" value="Usuario" name="usuario"> <br>

Contraseña: <input type="password" name="pass"> <br>

<input type="submit" value="Enviar">

</form>



login.php :
____________

<%
user = 'admin'
contra = '12435'

usuario = Request.Form ( "usuario" )
pass = Request.Form ( "pass" )

if user = usuario and contra = pass then

response.write "Contraseña valida"

else

response.write "Contraseña invalida"
end if
%>


Saludos y muchas gracias.
TELCO Very Happy
Mensaje Jue Oct 12, 2006 3:21 pm
kidd
Creador de Perl en Español
Creador de Perl en Español
Registrado: 15 Oct 2003
Mensajes: 1390
Ubicación: México
Responder citando

Hola:

Te estás complicando demasiado la vida. Te recomiendo que sigas paso a paso el tutorial que te mostró explorer pues ahí viene una buena solución para lo que necesitas.


Saludos
Mensaje Jue Oct 12, 2006 6:08 pm
explorer
Moderador
Moderador
Registrado: 24 Jul 2005
Mensajes: 4212
Ubicación: Valladolid, España
Responder citando

¿PHP? ¿Hemos dicho algo en este foro de hacer con PHP?
Mensaje Jue Oct 19, 2006 3:03 pm
TELCO71
Perlero Nuevo
Perlero Nuevo
Registrado: 10 Ago 2006
Mensajes: 48
Ubicación: Buenos Aires / Argentina
Responder citando

Estimado Explorer Laughing ,

Ya pude solucionar el tema de la página de validación con la info de la siguiente URL :
http://www.webtaller.com/construccion/lenguajes/php/lecciones/proteger-paginas-contrasena-php.php
( La posteo por si le puede servir a alguien .... Embarassed ) No solo de Perl vive el hombre ... JEJEJE Wink

Ahora te comento una inquietud que tengo. Todo me funciona OK ... pero quiero mejorar algunas cosas de estética.
Por ejemplo cuando oprimo los botones que activan los scripts me aparece una pantalla con la ejecución de dicho script de Perl.
¿¿¿ Hay alguna forma de que no se vea la ejecución de dicho script ???

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

También me gustaría que luego de ejecutarse el script me redirija nuevamente a una página determinada como la que lo lanzó sin necesidad de tener que volver hacia ella desde el browser ...

¿¿¿ Cómo te parece que podría realizarlo ???

¡¡ Saludos y muchas gracias !! Wink

TELCO Embarassed
Mensaje Jue Oct 19, 2006 5:15 pm
explorer
Moderador
Moderador
Registrado: 24 Jul 2005
Mensajes: 4212
Ubicación: Valladolid, España
Responder citando

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

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'.
Mensaje Vie Oct 20, 2006 10:32 am
TELCO71
Perlero Nuevo
Perlero Nuevo
Registrado: 10 Ago 2006
Mensajes: 48
Ubicación: Buenos Aires / Argentina
Responder citando

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 ...
HTML:
<form method=post action="cgi-bin/DESACTIVAR.pl">
<input type=submit name="OPCION2" value="DESACTIVACION">
</form>

pero ¿¿ cómo lo hago en javascript ?? Embarassed

¡¡ Saludos y muchas gracias !! Wink
TELCO
Mensaje Vie Oct 20, 2006 11:59 am
TELCO71
Perlero Nuevo
Perlero Nuevo
Registrado: 10 Ago 2006
Mensajes: 48
Ubicación: Buenos Aires / Argentina
Responder citando

Estimado Explorer ,


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

Código:
[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...

Perl:
print redirect('http://10.10.2.10/SCRIPT.html');


¿¿ Que estoy haciendo mal ??

Saludos
TELCO
Mensaje Sab Oct 21, 2006 11:37 am
explorer
Moderador
Moderador
Registrado: 24 Jul 2005
Mensajes: 4212
Ubicación: Valladolid, España
Responder citando

TELCO71 escribió:
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 escribió:
pero ¿¿ cómo lo hago en javascript ?? Embarassed

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

Código:
<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>
Mensaje Sab Oct 21, 2006 12:09 pm
explorer
Moderador
Moderador
Registrado: 24 Jul 2005
Mensajes: 4212
Ubicación: Valladolid, España
Responder citando

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

Perl:
print redirect('http://10.10.2.10/SCRIPT.html');


¿¿ 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:
http://perlenespanol.baboonsoftware.com/foro/viewtopic.php?t=464

Es recomendable que veas tambíen más respuestas del tema:
http://perlenespanol.baboonsoftware.com/foro/viewtopic.php?t=523

Hay más. Usa el sistema de búsqueda por la palabra 'redirect'.
Mensaje Lun Oct 23, 2006 7:50 am
TELCO71
Perlero Nuevo
Perlero Nuevo
Registrado: 10 Ago 2006
Mensajes: 48
Ubicación: Buenos Aires / Argentina
Responder citando

Estimado Explorer , Very Happy

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 ??? Embarassed

Saludos Embarassed
TELCO



Lo que coloco dentro del script :
_________________________________


Perl:
use CGI qw/:standard/;


print redirect('http://10.10.2.10/index.html');





Resultado del script :
______________________

Código:
#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 :
_____________________________


Perl:
use CGI qw/:standard/;


print redirect(-uri=>'http://10.10.2.10/index.html',
                           -nph=>1,
                           -status=>301);

Resultado del script :
______________________

Código:
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
Mensaje Lun Oct 23, 2006 9:04 am
explorer
Moderador
Moderador
Registrado: 24 Jul 2005
Mensajes: 4212
Ubicación: Valladolid, España
Responder citando

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:
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/cgi-bin/redirect.pl :
Perl:
#!/usr/bin/perl
use CGI ':standard';
print redirect( 'http://www.google.com.pe/' );
Mensaje Lun Oct 23, 2006 9:45 am
TELCO71
Perlero Nuevo
Perlero Nuevo
Registrado: 10 Ago 2006
Mensajes: 48
Ubicación: Buenos Aires / Argentina
Responder citando

Estimado Explorer , Laughing

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

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

Con el resto de las probé no hubo caso ... Embarassed
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 Laughing

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 Razz
Mensaje Mar Ene 23, 2007 7:27 pm
explorer
Moderador
Moderador
Registrado: 24 Jul 2005
Mensajes: 4212
Ubicación: Valladolid, España
Responder citando

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().
Publicar nuevo tema   Responder al tema    Foros de discusión -> CGI Todas las horas son GMT - 6 Horas
Ir a página Anterior  1, 2
Página 2 de 2



Powered by phpBB © 2001, 2005 phpBB Group