#!/usr/bin/perl # # order.cgi # print "Content-type:text/html\n\n"; read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'}); @pairs = split(/&/, $buffer); foreach $pair (@pairs) { ($name, $value) = split(/=/, $pair); $value =~ tr/+/ /; $value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg; $value =~ s/\n/ /g; # added to strip line breaks $value =~ s/\r//g; $value =~ s/\cM//g; $FORM{$name} = $value; } print <Order Form - Step 2

Order Form - Step 2

Here's what you've ordered:

EndHead open(INF,"data.db") or dienice("Can't open data.db: $! \n"); @grok = ; close(INF); $subtotal = 0; foreach $i (@grok) { chomp($i); ($stocknum,$name,$status,$price) = split(/\|/,$i); if ($FORM{$stocknum} ne "") { $subtotal = $subtotal + ($price * $FORM{$stocknum}); print "$name (#$stocknum) - $price ea., qty: $FORM{$stocknum}
\n"; print "\n"; } } if ($subtotal == 0) { &dienice("You didn't order anything!"); } print < Subtotal: \$$subtotal

Please enter your billing information:

Your Name:
Shipping Address:
City:
State/Province:
ZIP/Postal Code:
Country:
Phone:
Email:
Payment Method:
If paying by credit card, please fill out the following:
Credit Card #:
Expiration Date (MM/YY):
Billing Address:
City:
State/Province:
ZIP/Postal Code:
Country:

EndForm sub dienice { my($msg) = @_; print "

Error

\n"; print $msg; exit; }