• Publicidad

Problema con Formulario

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

Problema con Formulario

Notapor hadesdark » 2006-12-05 19:15 @843

Hola a todos, soy nuevo en el foro y en esto de programar en Perl. Llevo apenas como 1 mes haciendo casi todo por consola y ahora que lo empecé a combinar con html se me presentó un problema. Tengo el siguiente formulario:

Sintáxis: [ Descargar ] [ Ocultar ]
  1. <html> 
  2. <head><link rel="stylesheet" type="text/css" href="estilo.css"></head> 
  3. <body> 
  4. <center> 
  5. <table border=1> 
  6. <form action="lectura.pl" method="get"> 
  7. <tr> 
  8. <th colspan="2"><h2>Agregar Contacto</h2></th> 
  9. </tr> 
  10. <tr> 
  11. <td>ID:</td> 
  12. <td><input type="text" name="id" /></td> 
  13. </tr> 
  14. <tr> 
  15. <td>Nombre:</td> 
  16. <td><input type="text" name="name" /></td> 
  17. </tr> 
  18. <tr> 
  19. <td>Apellido:</td> 
  20. <td><input type="text" name="apellidos" /></td> 
  21. </tr>  
  22. <tr> 
  23. <td>Eda:</td> 
  24. <td><input type="text" name="edad" /></td> 
  25. </tr>  
  26. <tr> 
  27. <td>Cumpleaños:</td> 
  28. <td><input type="text" name="fecha" /></td> 
  29. </tr>  
  30. <tr align="right"> 
  31. <td colspan="2"> 
  32. <input type="submit" value="Enviar"> 
  33. </td> 
  34. </tr> 
  35. </form> 
  36. </table> 
  37. </center> 
  38. </body> 
  39. </html> 

El problema es que no sé cómo hacer para que al darle 'Enviar' me lance a la pantalla lectura.pl, o mejor dicho, que cuando vaya a lectura.pl me muestre el contenido de las variables, es decir, lo que se capturó en el formulario.

Ojalá me puedan ayudar, gracias de antemano.
hadesdark
Perlero nuevo
Perlero nuevo
 
Mensajes: 3
Registrado: 2006-12-05 19:10 @840

Publicidad

Notapor explorer » 2006-12-05 19:47 @866

Bienvenido a los foros de Perl en Español.

Cuando se pulsa 'Enviar', tu cliente web manda una petición al servidor web que aloja la página html. La petición, al ser del método "get" será una URL del tipo:
Código: Seleccionar todo
http://servidor-que-aloja-la-página/directorio-actual/lectura.pl?id=2&name=Joaquin&apellidos=Ferrero&edad=29&fecha=hoy&Enviar=Submit

El servidor web intentará encontrar una página llamada lectura.pl en el directorio-actual.

Supongamos que directorio-actual está marcado en el servidor web como un almacén de programas ejecutables y que el usuario que ejecuta el servidor web tiene permisos de ejecución de esos programas. Si lectura.pl existe en ese directorio y tiene permisos de ejecución, lo arrancará, pasándole la URL como parámetro en la entrada estándar. lectura.pl deberá interpretar esa entrada y preparar una salida, que entregará en la salida estándar, que será recogida por el servidor web y finalmente, éste la entregará al usuario.

En esto foro, en el apartado de tutoriales, mírate los que hablen de CGI. Usa también el sistema de búsqueda para buscar referencias a CGI. Más info en la Wikipedia.

Necesitaríamos más información de las condiciones en que estás haciendo esto: ¿qué servidor web? ¿remoto o local? ¿lectura.pl está colocado en su sitio correcto dentro del sitio web? ¿qué dicen los logs del servidor web? ¿qué sale en el navegador?
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14476
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

RE

Notapor hadesdark » 2006-12-05 19:58 @873

Gracias por responder, voy a ver de inmediato los tutoriales a ver que encuentro :D , y con respecto a las demás preguntas: uso Appserv, trabajo en local, lectural.pl está en el mismo directorio de este formulario, es decir, dentro de (c:/appserv/www/), y pues el problema viene siendo que no sé cómo mostrar los datos que se han puesto en el formulario, así que veré los tutos, alguna ayuda más será agradecida totalmente. ¡Saludos!

¡Ah!, y cuando le doy en enviar en la barra de dirección me pone esto:
Código: Seleccionar todo
http://localhost/perl/lectura.pl?id=2&name=Andres&apellidos=Lopez&edad=20&fecha=18+Noviembre
hadesdark
Perlero nuevo
Perlero nuevo
 
Mensajes: 3
Registrado: 2006-12-05 19:10 @840

Notapor explorer » 2006-12-05 20:08 @880

Pues la respuesta primera que se me ocurre es que debes comprobar que Appserv considera el directorio c:/appserv/www como posible almacén de programas ejecutables. Repasa su configuración. ¿No tiene alguna carpeta llamada bin, cgi o cgi-bin?
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14476
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

RE2

Notapor hadesdark » 2006-12-05 20:10 @882

Asi es, efectivamente en la carpeta www existe una carpeta con nombre cgi-bin, y dentro tiene un archivo llamado printenv.pl, osea que tengo que configurar algo en el appserv para que me reconozca los .pl? Gracias por la paciencia.
hadesdark
Perlero nuevo
Perlero nuevo
 
Mensajes: 3
Registrado: 2006-12-05 19:10 @840

Notapor explorer » 2006-12-05 20:40 @902

No. Debes colocar allí, dentro de cgi-bin, todos los .pl, incluyendo lectura.pl. Y en el html, en el <form>, cambias el 'action="lectura.pl"' por 'action="/cgi-bin/lectura.pl"'.

Al menos así es como hay que hacerlo en otros servidores web. Fíjate: si movemos el .pl dentro de cgi-bin, debemos indicar en action el 'camino' completo para que lo pueda localizar el servidor web. Si no lo encuentra, saldrá un error 404 en pantalla y en los logs.

Prueba a poner un http://localhost/cgi-bin/printenv.pl para comprobar si funciona.

Si no sale, quizás sea porque en vez de 'cgi-bin' sea otra cosa. En ese caso habrá que ver la doc de Appserv (que, a propósito, creo que es la segunda vez en mi vida que oigo hablar de este servidor web).
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14476
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Notapor Frank » 2007-01-06 13:41 @611

a ver a mi me pasa una cosa similar, uso appserv corriendo en local en una maquina con Win XP, intente ejecutar un script y me arroja un error el cual se refiere (en mi arcaico ingles) a una mala configuracion del http.conf, en la ayuda de active state tiene una serie de trucos para solventar el problema, primero lo intento y luego te digo que paso.
soy begginer en perl.
Frank
Perlero nuevo
Perlero nuevo
 
Mensajes: 1
Registrado: 2007-01-06 13:29 @603


Volver a Básico

¿Quién está conectado?

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