Perl en Español

  1. Home
  2. Tutoriales
  3. Foro
  4. Artículos
  5. Donativos
  6. Publicidad
 
Índice general » Mundo Perl » Web » CGI no muestra información de la BD Responder al tema
Nuevo tema


Página 1 de 1  [ 5 mensajes ] 
 
Nota 2008-04-08 00:32 @064

Perlero Nuevo
Registrado: 2008-04-06 16:44 @739
Mensajes: 19
CGI no muestra información de la BD
Hola, tengo esta aplicación en Perl que debe de funcionar en cgi.
Ya lo guardé como programa.pl y programa.cgi. Lo pongo en la carpeta cgi-bin y no lo corre. ¿Por qué?

Lo pongo así
http://localhost/cgi-bin/programa.pl

También probé así
http://localhost/cgi-bin/programa.cgi

y me dice Internal Server Error ¿por qué? ¿qué tengo que hacer?
Syntax: [ Download ] [ Hide ]
Using perl Syntax Highlighting
#! /usr/bin/perl -w
# usando módulo o librería CGI
use CGI;
use DBI;

# creando el OBJETO de tipo CGI
$q = new CGI;

# mandando servidor los encabezados de la página html
print $q->header;
print $q->start_html();

# creando una form o ventana
print $q->startform();

# creando un submit button
print $q->submit('DESPLEGAR');

# cerrando la forma
print $q->endform();

#cerrando html
print $q->end_html;

if ( $q->param('DESPLEGAR')) {
    print $q->hr();

    # empezando una tabla html
    print "<HTML><TABLE Border=10 CellPadding=5><TR>";

    # construyendo los encabezados de la tabla
    print "<th bgcolor=Green>CLAVE</th><th bgcolor=White>NOMBRE</th><th bgcolor=Red>EDAD</th><th bgcolor=blue>ESTATURA</th></TR>";

    # creando enlace o conexión dbh=>database handle
    my $dbh = DBI->connect('DBI:mysql:mibase:localhost','root','')|| die "ERROR CONECCION : $DBI::errstr";

    # preparando el query sql
    # sth=>statement handle convencion mysql tambien
    my $sth = $dbh->prepare('SELECT * FROM mitabla');
    $sth->execute;

    # ciclo de lectura de todos los renglones de la tabla
    while ( my ($clave, $nombre, $edad, $estatura) = $sth->fetchrow_array() ) {
        print "<TR><TD>"."$clave"."</TD><TD>"."$nombre"."</TD><TD>"."$edad"."</TD><TD>"."$estatura"."</TD></TR>";
    };

    # cerrando tabla, instrucción y conexión
    print "</TABLE>";
    $sth->finish;
    $dbh->disconnect();
    print $q->hr();
};


Nota 2008-04-08 02:07 @130
Avatar de Usuario
Administrador
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España
Mensajes: 10216
Es muy posible que el script no tenga permisos de ejecución.
Ponle permisos 755, por ejemplo:
Syntax: [ Download ] [ Hide ]
Using bash Syntax Highlighting
chmod 755 programa.pl

Recuerda: los ficheros de log son tus amigos.

_________________
JF^D Perl programming


Nota 2008-04-08 10:15 @469

Perlero Nuevo
Registrado: 2008-04-06 16:44 @739
Mensajes: 19
Hola, ya me corrió bien el único problema era que le faltaba exit(1);

Ahora otra cosa, no me despliega lo que está en la tabla ¿por qué? ¿qué está mal? y sí hay datos en la tabla.


Nota 2008-04-09 00:17 @053
Avatar de Usuario
Administrador
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España
Mensajes: 10216
Pues yo veo que imprimes el end_html() antes de la tabla... eso es un error.

Haz la prueba de mirar el código fuente de la página HTML que te devuelve el cgi, a ver si después de la etiqueta de fin de HTML está la tabla.

_________________
JF^D Perl programming


Nota 2008-04-09 00:30 @063

Perlero Nuevo
Registrado: 2008-04-06 16:44 @739
Mensajes: 19
Hola. Ya me corre bien lo que tenía mal. Es que me faltaba instalar DBD::mysql. Gracias.


Responder al tema  [ 5 mensajes ] 

Reglas del Foro
No puedes abrir nuevos temas en este Foro
No puedes responder a temas en este Foro
No puedes editar tus mensajes en este Foro
No puedes borrar tus mensajes en este Foro
No puedes enviar adjuntos en este Foro

Publicidad

Socializa

Síguenos por Twitter

Suscríbete GRATUITAMENTE al Boletín de Perl en Español

Saltar a:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Traducción al español por Huan Manwë para phpbb-es.com
phpBB SEO