• Publicidad

Conexión Perl-MySQL

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

Conexión Perl-MySQL

Notapor Nelson » 2009-04-23 00:56 @080

Hola, ¿cómo están?

Por favor, ayúdenme. Estoy con Fedora 7. Necesito hacer una aplicación web con Perl y MySQL. Tengo toda la interfaz en HTML pero no sé cómo hacer la conexión primeramente.
Tengo instalado el Apache v2.0 y la interfaz HTML sí me corre desde la carpeta (/var/www/html/paginaweb); ahí me corre la aplicación (/localhost/paginaweb/index.html)
pero ahora necesito hacer la conexión y tengo muchas dudas, no sé si está bien en donde tengo el proyecto; no sé si se debe instalar alguna cosa de Perl, o si el Apache que tengo si está bien. También instale el phpMyAdmin.

Por ejemplo, quise el típico "hola mundo"; puse el siguiente código y el archivo se llama "hola.pl" dentro de la carpeta (/var/www/cgi-bin) pero no me corre, me sale un error.

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
#!/usr/bin/perl
# Si me pueden ayudar con esta línea; debe haber dentro de /bin/perl, o sea, abro
# esta secuencia de carpetas pero solo llego hasta bin/, dentro de ésta no está perl.
# No sé si debe estar o qué.
$titulo = "Programacion Web - Ejemplo";
$texto = "Hola mundo";
print "content-type: text/htmlnn";
print "<head>n";
print "<title>$titulo</title>n";
print "</head>n";
print "<body>n";
print $texto;
print "</body></HTML>n";
Coloreado en 0.004 segundos, usando GeSHi 1.0.8.4


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

Publicidad

Notapor explorer » 2009-04-23 05:40 @278

Bienvenido a los foros de Perl en Español, Nelson.

Si estás en Linux/UNIX, ya tienes Perl instalado. Te vale con ejecutar el comando perl -V para comprobarlo.

Por lo general, se instalará en /usr/bin/perl, que es lo que marca la primera línea del programa.

No nos dices el error que sale cuando ejecutas el programa. Prueba a instalar mi CGI mínimo en la carpeta de los cgi, y llámalo desde el navegador web con http://localhost/cgi-bin/cgi_minimo.pl (o el nombre con el que lo hayas creado).

Si aparecen errores en pantalla, nos lo dices. Revisa también los ficheros de registro (log) que Apache crea con toda esta actividad, por lo general en /var/log/apache2. El interesante es el llamado error.log.

Veo unos cuantos errores en tu programa: se nota que lo has copiado de algún sitio, pero mal, porque han desaparecido todos los backslash. Las 'nn' al final del primer print() deberían ser '\n\n'. Y se te ha olvidado la etiqueta '<html>' al principio.

El programa quedaría así:
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
#!/usr/bin/perl
$titulo = "Programación Web - Ejemplo";
$texto  = "Hola mundo";

print "Content-Type: text/html\n\n";
print "<html><head>\n";
print "<title>$titulo</title>\n";
print "</head>\n";
print "<body>\n";
print $texto;
print "</body></HTML>\n";
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4
aunque es escribir mucho... hay muchas cosas que se repiten, sobre todo los print().

Queda más cómodo agruparlos:
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
#!/usr/bin/perl
$titulo = "Programación Web - Ejemplo";
$texto  = "Hola mundo";

print <<"FIN";
Content-Type: text/html

<html>
<head>
    <title>$titulo</title>
</head>
<body>
$texto;
</body>
</html>
FIN
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4

En este sitio web encontrarás, en el menú de arriba, un enlace a unos Tutoriales, entre los que hay varios dedicados a empezar con la técnica del CGI.

Más adelante verás que es más cómodo usar el módulo CGI de Perl y convertir tu programa en
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
#!/usr/bin/perl
use CGI ':standard';

$titulo = "Programación Web - Ejemplo";
$texto  = "Hola mundo";

print header(),
      start_html($titulo),
      $texto,
      end_html();
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4

Y más adelante, descubrir el mundo de las plantillas HTML, con la que podrás crear tus páginas HTML por un lado, y el código Perl en otro.

¡Adelante!
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

cgi-bin ayuda cgiminimo

Notapor Nelson » 2009-04-26 08:08 @380

Hola, ¿cómo estas? Gracias por la respuesta.

Ya puse ese código de cgiminimo y me sale el mismo error que me salía antes; te copio tal como me sale para ver si me puedes ayudar a ver qué es lo que está pasando.

Código: Seleccionar todo
Internal Server Error

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

Please contact the server administrator, root@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.2.8 (Fedora) Server at localhost Port 80


Este error es el que me sale. Ayúdame, por favor. No sé qué está mal. Gracias por la respuesta.
Nelson
Perlero nuevo
Perlero nuevo
 
Mensajes: 8
Registrado: 2009-04-23 00:39 @068

Notapor explorer » 2009-04-26 12:26 @559

El error no da ningún tipo de información.

Solo dice que mires el fichero de errores del servidor web. Localízalo en el sistema. Podría estar en /var/log/apache2/error.log, por ejemplo. Allí se guarda el porqué pasa eso.

De todas formas, en el CGI mínimo se usa el módulo CGI::Carp, que vuelca todos los errores a la pantalla. Si lo estás usando en tu programa y aún así no aparece nada, es que el error es más grave.

La única solución que se me ocurre ahora es mirar el contenido de ese fichero de error.
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 Nelson » 2009-04-26 23:21 @014

Gracias por la ayuda. Ya me salió el error. Era que el Apache que yo tenía no era el mejor que se diga.

Instalé el XAMPP y dentro de la carpeta htdoc/ ya me funcionó el hola mundo y el CGI mínimo.

Ahora sí me toca hacer la aplicación Web. Por favor disculpa el abuso. Si tienes por ahí una conexión con MySQL ayúdame, porfa.

Y otra pregunta, tengo todas las interfaces de la aplicación con extensión .html. ¿Debo cambiar todas las interfaces a .pl o no es necesario? Ayúdame con esto. Gracias.
Nelson
Perlero nuevo
Perlero nuevo
 
Mensajes: 8
Registrado: 2009-04-23 00:39 @068

Notapor explorer » 2009-04-27 03:58 @207

Para ver cómo conectarte con MySQL, puedes ver los Tutoriales de esta página web.

Por ejemplo, tienes uno llamado Cómo conectarte a tu database.

En cuanto a las extensiones de las páginas, no es necesario hacerlo... deja con .html las páginas que sean estáticas o plantillas que vayas a cargar con el sistema de plantillas que uses, por ejemplo, HTML::Template. Y lo que sea programa ejecutable, pues sí, a .pl o .cgi, según lo que prefiera o esté configurado 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


Volver a Básico

¿Quién está conectado?

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

cron