The CGI to read the data from merch.txt works but how can I put this in a table?
HTML File:
<form action="/cgi-bin/asst5/data.cgi" method="post">
<table border="2" cellspacing="5" cellpadding="5">
<tr>
<td align="center">SKU: </td>
<td><input type="text" name="code" size="15"></td>
</tr>
<tr>
<td align="center">Name: </td>
<td><input type="text" name="customer" size="15"></td>
</tr>
</table>
</form>
Data.CGI where data is accepted after it's been entered in the HTML
my $sku = param('code');
my $cust = param('customer');
print <<HERE;
<HTML>
<BODY>
SKU: $sku<br>
Name: $cust<br>
HERE
open (ORDERS, ">>merch.txt") or die "File error, $!";
print ORDERS "$sku|$cust\n";
close ORDERS;
Read.CGI This is the CGI file that reads the content from merch.txt
open ( ORDERS, "merch.txt" ) or die "Error opening file, $!";
my @orders = <ORDERS>;
close ORDERS;
print <<here;
<HTML>
<BODY>
here
for (my $i = 0; $i < @orders; $i++ ) {
print "<td><pre>", CGI::escapeHTML($orders[$i])."<br>\n", "</pre></td>\n";
}
print <<MORE;
</BODY>
</HTML>
MORE
Using your raw embedded HTML approach, it's not hard. But it is incredibly ugly.
But mixing raw HTML with your Perl code is a terrible idea. Please use a templating engine instead. I recommend the Template Toolkit.
Here's a simple CGI program using TT to do what you need.
And you'll need a template that looks something like this: