form.cgi 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. #!/usr/bin/env perl
  2. use strict;
  3. use warnings;
  4. use URI;
  5. use CGI qw(:standard);
  6. use DBI;
  7. # Configura la conexión a la base de datos SQLite
  8. my $dbh = DBI->connect("dbi:SQLite:dbname=../productos.db", "", "");
  9. $dbh->{RaiseError} = 1; # Habilita mensajes de error en caso de problemas
  10. # Crea la tabla si no existe
  11. $dbh->do(q{
  12. CREATE TABLE IF NOT EXISTS productos (
  13. id_producto INTEGER PRIMARY KEY,
  14. Descripcion TEXT,
  15. Cantidad INTEGER,
  16. proveedor TEXT
  17. )
  18. });
  19. # Manejo de la solicitud POST
  20. if ($ENV{'REQUEST_METHOD'} eq 'POST') {
  21. my $id_producto = param('id_producto');
  22. my $Descripcion = param('Descripcion');
  23. my $Cantidad = param('Cantidad');
  24. my $proveedor = param('proveedor');
  25. # Inserta los datos en la base de datos
  26. my $sth = $dbh->prepare(q{
  27. INSERT INTO productos (id_producto, Descripcion, Cantidad, proveedor)
  28. VALUES (?, ?, ?, ?)
  29. });
  30. $sth->execute($id_producto, $Descripcion, $Cantidad, $proveedor);
  31. }
  32. # Genera el formulario HTML
  33. print header();
  34. print start_html('Formulario de Producto');
  35. print h1('Ingrese los datos del producto:');
  36. print start_form(-method => 'POST', -action => $ENV{'SCRIPT_NAME'});
  37. print div({class=>'field'}, label('ID Producto:', 'id_producto'));
  38. print textfield('id_producto');
  39. print div({class=>'field'}, label('Descripción:', 'Descripcion'));
  40. print textfield('Descripcion');
  41. print div({class=>'field'}, label('Cantidad:', 'Cantidad'));
  42. print textfield('Cantidad', {type => 'number'});
  43. print div({class=>'field'}, label('Proveedor:', 'proveedor'));
  44. print textfield('proveedor');
  45. print submit(-value => 'Guardar Producto');
  46. print end_form();