form3.cgi 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  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 <<'END_MESSAGE';
  35. <HEAD>
  36. <TITLE>Demo3 </TITLE>
  37. <link rel="stylesheet" href="http://127.0.0.1/form.css">
  38. </HEAD>
  39. <BODY>
  40. <form id="productoForm" action="form3.cgi" method="POST">
  41. <div>
  42. <label for="id_producto">ID Producto:</label>
  43. <input type="text" id="id_producto" name="id_producto" required>
  44. <span class="error" id="idProductoError"></span>
  45. </div>
  46. <div>
  47. <label for="Descripcion">Descripción:</label>
  48. <input type="text" id="Descripcion" name="Descripcion" required>
  49. <span class="error" id="DescripcionError"></span>
  50. </div>
  51. <div>
  52. <label for="Cantidad">Cantidad:</label>
  53. <input type="number" id="Cantidad" name="Cantidad" required>
  54. <span class="error" id="CantidadError"></span>
  55. </div>
  56. <div>
  57. <label for="proveedor">Proveedor:</label>
  58. <input type="text" id="proveedor" name="proveedor" required>
  59. <span class="error" id="proveedorError"></span>
  60. </div>
  61. <button type="submit">Guardar Producto</button>
  62. </form>
  63. </BODY>
  64. END_MESSAGE