#!/usr/bin/perl -wT use CGI qw(:standard); use CGI::Carp qw(warningsToBrowser fatalsToBrowser); use DBI; use strict; print header; print start_html("Kite Catalog"); my $dbh = DBI->connect( "dbi:mysql:products", "webserver", "", { RaiseError => 1, AutoCommit => 1 }) or &dienice("Can't connect to database: $DBI::errstr"); print <<EndHdr; <h2 align="CENTER">Kite Catalog</h2> To order, enter the quantity in the input box next to the item.<p> <form action="order.cgi" method="POST"> EndHdr my $sth = $dbh->prepare(qq(select stocknum,name,price from items where status != "OUT" order by stocknum)) or &dbdie; $sth->execute or &dbdie; while (my($stocknum,$name,$price) = $sth->fetchrow_array) { print qq(<input type="text" name="$stocknum" size=5> $name - \$$price<p>\n); } print qq(<input type="submit" value="Order!">\n); print end_html; sub dienice { my($msg) = @_; print "<h2>Error</h2>\n"; print $msg; exit; } sub dbdie { my($package, $filename, $line) = caller; my($errmsg) = "Database error: $DBI::errstr<br> called from $package $filename line $line"; &dienice($errmsg); }