[perl] CGI's

Sergio Tirado stirado@campus.gym.itesm.mx
Fri, 10 Mar 2000 15:26:41 -0700


At 12:14 PM 3/10/00 -0600, you wrote:
>Por otro lado, ¿alguien tiene por ahí algún fuente o referencias de
>programas hechos con DBI.pm y CGI.pm? estoy haciendo unos cgi's y
>quisiera darme una idea.

Te mando un miniprogramita para dar de alta frases célebres:

#!/usr/bin/perl -w

use CGI qw(:standard);

$q = new CGI;
$q->import_names('R');

use DBI();

my $dbh = DBI->connect("DBI:mysql:frases;localhost", "root", "flaco");
my $query = "SELECT autor_id, nombre, apellido_p, apellido_m FROM autor ORDER BY nombre";
my $output = $dbh->prepare($query);

$output->execute;
$no_autores = 0;
$autores = {};
while (my($autor_id,$nombre,$apellido_p,$apellido_m) = $output->fetchrow_array) {
   $nombre_completo = "$nombre $apellido_p $apellido_m";
   $autor->{$autor_id} = $nombre_completo;
   push @autores, $autor;
}
$output->finish();
$dbh->disconnect();

print header;
print start_html(-title=>'Registro de frases',
                  -link=>'blue',
                  -alink=>'#0066ff',
                  -vlink=>'navy',
                  -BGCOLOR=>'white');
print "<center>";
print font({-face=>'Arial, Helvetica, Verdana',
             -size=>5,
             -color=>'black'},
             'Frase del día');
print br;
print font({-face=>'Arial, Helvetica, Verdana',
             -size=>3,
             -color=>'black'},
             'Registro de frases');
print "</center>";
print br;
print br;

print startform(-method=>'post',
                 -action=>'./frases.cgi');

print table({-align=>'center',
              -border=>0},
   Tr(
     [
       td({align=>'right'},['Autor',popup_menu(-name=>'autor_id', -default=>1, -values=>@autores)]),
       td({align=>'right',valign=>'top'},['Frase',textarea(-name=>'frase', -rows=>5, -columns=>34)]),
       td({align=>'right'},['Comentario',textfield(-name=>'comentario', -size=>40, -maxlength=>255)]),
       td([' ',submit(-label=>'Registrar')])
     ]
   )
);

print endform;

print "<CENTER><A href='/informatica/admin/frases/altas/autores.cgi'>registrar un nuevo autor</A> | <A href='/informatica/admin/frases/altas/'>menú anterior</A></Center>";

if (param()) {
   if ($R::frase ne undef) {
     print "<br>";  
     print "<CENTER>";  
     print "<I>$R::frase - $autor->{$R::autor_id}</I><br>";
     print "<br>";  
     print "<FONT color='#ff0000'>El registro ha sido dado de alta</Font><br>";
     print "<br>";  
     print "<A href='./frases.cgi/'>capturar otro registro</A> | <A href='/informatica/admin/frases/altas/'>menú anterior</A>";
     print "</Center>";
     my $dbh = DBI->connect("DBI:mysql:frases;localhost", "root", "flaco");
     my $output = $dbh->do("INSERT INTO frase VALUES('',\'$R::frase\',\'$R::autor_id\',\'$R::comentario\')");
     $output->finish();
     $dbh->disconnect();
   }
}

print end_html;

--
Sergio Tirado Ochoa
Director de Informática
ITESM Campus Guaymas

--------- Pie de mensaje --------------------------------
Visite: http://tlali.iztacala.unam.mx/~randrade/perl.shtml
Cancelar inscripcion:
mail to: majordomo@tlali.iztacala.unam.mx
text   : unsubscribe perl