Lun Abr 07, 2008 11:32 pm
|
 |
alphabravo
Perlero Nuevo

|
Registrado: 06 Abr 2008
Mensajes: 12
|
|
| 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?
| Perl: | #! /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();
}; |
|
|
|
|

Mar Abr 08, 2008 9:15 am
|
 |
alphabravo
Perlero Nuevo

|
Registrado: 06 Abr 2008
Mensajes: 12
|
|
|
|
|
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. |
|
Mar Abr 08, 2008 11:17 pm
|
 |
explorer
Moderador

|
Registrado: 24 Jul 2005
Mensajes: 4018
Ubicación: Valladolid, España
|
|
|
|
|
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. |
|
Mar Abr 08, 2008 11:30 pm
|
 |
alphabravo
Perlero Nuevo

|
Registrado: 06 Abr 2008
Mensajes: 12
|
|
|
|
|
| Hola. Ya me corre bien lo que tenía mal. Es que me faltaba instalar DBD::mysql. Gracias. |
|
Powered by phpBB © 2001, 2005 phpBB Group
|