• Publicidad

HTML y Perl

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

HTML y Perl

Notapor Nelson » 2009-05-01 11:40 @527

Hola, ¿cómo están?

Por favor, he estado en esto y ya no sé qué hacer.

El problema es que tengo la aplicación en HTML y no sé qué hacer para poner código Perl dentro de ella. El siguiente código que les muestro está en HTML.

Están dos campos de texto y un botón para enviar; lo que quiero es saber cómo puedo poner código Perl para que realice la conexión con MySQL y que ingrese los campos que se pongan en los text en la base de datos. Esta interfaz está en Dreamweaver pero igual es solo código HTML.

Sintáxis: [ Descargar ] [ Ocultar ]
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
  2.  
  3. <html xmlns="http://www.w3.org/1999/xhtml"> 
  4.  
  5. <head> 
  6.  
  7. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> 
  8.  
  9. <title>Documento sin t&iacute;tulo</title> 
  10.  
  11. </head> 
  12.  
  13. <body> 
  14.  
  15. <table width="200" border="1"> 
  16.  
  17. <tr> 
  18.  
  19. <td>Nombres</td> 
  20.  
  21. <td><input name="txtnombre" type="text" id="txtnombre" /></td> 
  22.  
  23. </tr> 
  24.  
  25. <tr> 
  26.  
  27. <td>Ciudad</td> 
  28.  
  29. <td><input name="txtciudad" type="text" id="txtciudad" /></td> 
  30.  
  31. </tr> 
  32.  
  33. <tr> 
  34.  
  35. <td><input name="btnenviar" type="submit" id="btnenviar" value="Enviar" /></td> 
  36.  
  37. <td>&nbsp;</td> 
  38.  
  39. </tr> 
  40.  
  41. </table> 
  42.  
  43. </body> 
  44.  
  45. </html> 


Quiero saber en qué parte de esto va el código de la conexión y el código para que permita ingresar los campos a la BD.

Y también si se le cambia a .pl o .cgi.

Por favor, ayúdenme. Antes me aclararon algunas dudas pero el problema es que no sé cómo enlazar código Perl en HTML o código HTML en Perl.

Gracias por las respuestas y disculpen por las molestias.
Nelson
Perlero nuevo
Perlero nuevo
 
Mensajes: 8
Registrado: 2009-04-23 00:39 @068

Publicidad

Notapor kidd » 2009-05-01 12:25 @559

Hola,

Para hacer el envío de datos harás uso de los forms. En nuestra sección de tutoriales encontrarás la información necesaria para empezar a solucionar tu problema:
http://perlenespanol.com/tutoriales/cgi ... pasos.html
http://perlenespanol.com/tutoriales/cgi ... u_cgi.html
http://perlenespanol.com/tutoriales/bas ... abase.html

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 explorer » 2009-05-01 12:54 @579

Nelson, para usar la tecnología CGI, debes crear un código Perl aparte del HTML que ya tienes. Ese código lo guardarás en un sitio especial del servidor web.

Cuando el usuario pulse el botón de envío en el formulario, estará haciendo una llamada al programa, que recibirá como argumentos toda la información que el usuario metió en las cajas de texto y resto del formulario. El programa hará la conexión a la base de datos e ingresará la información.

Al final, el programa devolverá un resultado HTML al usuario para informarle del resultado de la operación.
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 Nelson » 2009-05-01 13:08 @589

Te entiendo más o menos pero ¿cómo sería el método para que le llame al código Perl del servidor? y también, ¿cuál es el método para que envíe los datos que se ingresaron?

Ayúdame, por favor. Disculpa si se es tan abusivo.

Y otra cosa, no sé si soy tan abusivo pero tal vez tienes hotmail para que me ayudes por ahí mejor.

Nuevamente, disculpa y si no se puede pues ni modo. De todas formas gracias por responder. Es el primer foro que responden de buena manera y no se dedican a criticar a los que no sabemos muy bien del tema.
Nelson
Perlero nuevo
Perlero nuevo
 
Mensajes: 8
Registrado: 2009-04-23 00:39 @068

Notapor explorer » 2009-05-01 13:18 @595

¿Te has leído antes los 3 manuales que te ha indicado kidd? Ahí viene explicado lo que tienes que hacer.

Todo consiste en que pongas un formulario en tu HTML, cuya action apunte a tu cgi.

Para probar tu sistema de CGI en tu máquina, puedes probar con mi CGI mínimo. En ese mismo hilo tienes más pistas de cómo hacer funcionar el sistema 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 Nelson » 2009-05-01 15:17 @678

El programa de CGI mínimo sí me sale bien.

Pero entonces en el action del formulario HTML le llamo al cgi, ¿estoy bien?
Sintáxis: [ Descargar ] [ Ocultar ]
  1. <form id="form1" name="form1" method="post" action="http://localhost/cgi-bin/ingreso.pl"> 


¿O debe enviar los campos, pero cómo? Ya me leí los enlaces de Kidd y en uno utilizando el método get me dice lo siguiente:

Código: Seleccionar todo
http://www.misitio.com/cgi-bin/[email protected]&nombre=MiNombre


Entonces según yo debo enviar algo como esto, digamos que tengo 2 campos de texto llamados txtnombre y txtciudad.

Sintáxis: [ Descargar ] [ Ocultar ]
  1. <form id="form1" name="form1" method="post" action="http://localhost/cgi-bin/ingreso.pl?nombre=txtnombre&ciudad=txtciudad"> 


Dime por favor si estoy bien así o no.
Nelson
Perlero nuevo
Perlero nuevo
 
Mensajes: 8
Registrado: 2009-04-23 00:39 @068

Notapor explorer » 2009-05-01 15:29 @686

No... no lo has entendido del todo...

Tu, en el action solo pones el nombre del programa, tal como pones en el primer HTML que has puesto ahora.

Sintáxis: [ Descargar ] [ Ocultar ]
  1. <form method="post" action="http://localhost/cgi-bin/ingreso.pl"> 


Los campos los envía el propio navegador, de forma automática. Enviará los campos que estén dentro de las marcas <form> y </form> de tu formulario. Y lo hará siguiendo el método indicado en el method del formulario.

Debes entender cómo funciona el sistema de formularios HTML. Te recomiendo que busques algún manual de HTML.

Si ves el CGI mínimo, en la segunda parte de él, verás un método para leer y sacar a pantalla los argumentos pasados por el formulario. Solo te queda abrir la base de datos y meterlos allí.
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 Nelson » 2009-05-01 15:48 @700

Sácame de una duda: el CGI mínimo me sale bien pero cuando está dentro de la carpeta htdocs/ ya que tengo instalado el XAMPP. Igualmente el "hola mundo" me sale cuando está dentro de esta carpeta: (opt/lampp/htdocs) lo corro así: (http://localhost/cgiminimo.pl), pero cuando lo pongo en la carpeta cgi-bin/ (opt/lampp/cgi-bin) y lo corro (http://localhost/cgi-bin/cgiminimo.pl) me sale error de igual manera en el hola.pl. El error es el siguiente:

Código: Seleccionar todo
¡Acceso prohibido!

Usted no tiene permiso de accesar al objeto solicitado. Existe la posibilidad de que este protegido contra lectura o que no haya podido ser leido por el servidor.

Por favor contacte con el webmaster en caso de que usted crea que existe un error en el servidor.
Error 403
localhost
jue 30 abr 2009 15:57:13 ECT
Apache/2.2.11 (Unix) DAV/2 mod_ssl/2.2.11 OpenSSL/0.9.8k PHP/5.2.9 mod_apreq2-20051231/2.6.0 mod_perl/2.0.4 Perl/v5.10.0


y si lo cambio de extensión a .cgi me sale:

Código: Seleccionar todo
¡Error en el servidor!

El servidor encontro un error interno y fue imposible completar su solicitud.

Mensaje de error:
Premature end of script headers: cgiminimo.cgi

Por favor contacte con el webmaster en caso de que usted crea que existe un error en el servidor.
Error 500
localhost
jue 30 abr 2009 15:58:16 ECT
Apache/2.2.11 (Unix) DAV/2 mod_ssl/2.2.11 OpenSSL/0.9.8k PHP/5.2.9 mod_apreq2-20051231/2.6.0 mod_perl/2.0.4 Perl/v5.10.0


Ayúdame, por favor, porque pienso que si desde la aplicación HTML lo llama a algún archivo dentro de cgi-bin/ no va a valer. ya que no vale ninguno de los archivos que corro dentro de esta carpeta. ¿Crees que si todo lo pongo dentro de htdocs/ valga o de ley debe ir dentro de cgi-bin/?
Nelson
Perlero nuevo
Perlero nuevo
 
Mensajes: 8
Registrado: 2009-04-23 00:39 @068

Notapor explorer » 2009-05-01 15:57 @706

Lo normal es que las páginas HTML estén en htdocs/ y los CGI deben estar en cgi-bin/.

Debes repasar el fichero error.log para saber porqué te ha fallado.
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 Nelson » 2009-05-01 16:05 @712

En el archivo que me dices no entiendo bien cómo ver qué pasa con los errores pero las últimas líneas me sale esto:

Código: Seleccionar todo
[Thu Apr 30 15:39:10 2009] [error] Options ExecCGI is off in this directory/opt/lampp/cgi-bin/cgiminimo.pl
[Thu Apr 30 15:40:34 2009] [error] Options ExecCGI is off in this directory/opt/lampp/cgi-bin/cgiminimo.pl
[Thu Apr 30 15:40:37 2009] [error] [client 127.0.0.1] (13)Permiso denegado: exec of '/opt/lampp/cgi-bin/cgiminimo.cgi' failed
[Thu Apr 30 15:40:37 2009] [error] [client 127.0.0.1] Premature end of script headers: cgiminimo.cgi
[Thu Apr 30 15:41:43 2009] [error] [client 127.0.0.1] File does not exist: /opt/lampp/htdocs/cgi-bin
[Thu Apr 30 15:41:53 2009] [error] [client 127.0.0.1] attempt to invoke directory as script: /opt/lampp/cgi-bin/
[Thu Apr 30 15:42:26 2009] [error] Options ExecCGI is off in this directory/opt/lampp/cgi-bin/hola.pl
[Thu Apr 30 15:57:03 2009] [error] Options ExecCGI is off in this directory/opt/lampp/cgi-bin/consulta.pl
[Thu Apr 30 15:57:14 2009] [error] Options ExecCGI is off in this directory/opt/lampp/cgi-bin/cgiminimo.pl
[Thu Apr 30 15:58:17 2009] [error] [client 127.0.0.1] (13)Permiso denegado: exec of '/opt/lampp/cgi-bin/cgiminimo.cgi' failed
[Thu Apr 30 15:58:17 2009] [error] [client 127.0.0.1] Premature end of script headers: cgiminimo.cgi
Nelson
Perlero nuevo
Perlero nuevo
 
Mensajes: 8
Registrado: 2009-04-23 00:39 @068

Siguiente

Volver a Básico

¿Quién está conectado?

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

cron