swilkins
02-22-2006, 08:39 PM
I have created a form that is sending order information in an email. It is working except that randomly throughout the email odd characters appear - usually an exclamation point. I can't see anything in my cgi that would cause these characters - especially since they don't always appear in the same places (I am sending a duplicate email to a different address and they may not show up in it). I am including two mail processes because the emails are not exactly alike in the header. The user also gets a new thank you page after submission (not included in posted code). Can anybody see what I have done wrong!
#!/usr/bin/perl
require "cgi-lib.pl";
$userok="no";
&ReadParse;
$mailprog='/usr/sbin/sendmail';
print "Content-type: text/html\n\n";
print "<HTML>";
print "<BODY BGCOLOR='#acc293' FONT COLOR='black'>";
print "<P ALIGN='center'>";
print "<IMG SRC='/images/swg.jpg' ALT='Southwest Greens'><BR><BR></P>";
open (MAIL, "|$mailprog -t") || die "Can't open mail program\n";
print MAIL "To: $in{'myemail'}\n";
print MAIL "Reply-To: $in{'custemail'}\n";
print MAIL "From: $in{'custemail'}\n";
print MAIL "Subject: Online Order\n";
print MAIL "Content-type: text/html\n\n";
print MAIL "<HTML><BODY BGCOLOR='#acc293'>";
print MAIL "<P ALIGN='center'><BIG><BIG>SouthWest Greens Order</BIG></BIG><BR><BR></P>";
print MAIL "<TABLE BORDER='2' BGCOLOR='c0cea8'><TR>";
print MAIL "<TD><B>Collection</B></TD><TD><B>Style</B></TD><TD><B>Name</B></TD><TD><B>Backing</B></TD><TD><B>Pile Height</B></TD><TD><B>Width</B></TD><TD><B>45ft</B></TD><TD><B>5ft</B></TD><TD><B>100ft</B></TD><TD><B>Other</B></TD><TD><B>Price</B></TD><TD><B>Cut Fee</B></TD><TD><B>Total</B></TD></TR>";
for ($x = 1; $x < $in{'recs'}; $x++)
{
$filename = "total1";
$filename =~s/1/$x/g;
if ($in{$filename} > 0)
{
$filename = "collection1";
$filename =~s/1/$x/g;
print MAIL "<TD>$in{$filename}</TD>";
$filename = "style1";
$filename =~s/1/$x/g;
print MAIL "<TD>$in{$filename}</TD>";
$filename = "name1";
$filename =~s/1/$x/g;
print MAIL "<TD>$in{$filename}</TD>";
$filename = "backing1";
$filename =~s/1/$x/g;
print MAIL "<TD>$in{$filename}</TD>";
$filename = "pileheight1";
$filename =~s/1/$x/g;
print MAIL "<TD>$in{$filename}</TD>";
$filename = "width1";
$filename =~s/1/$x/g;
print MAIL "<TD>$in{$filename}</TD>";
$filename = "fortyfiveft1";
$filename =~s/1/$x/g;
print MAIL "<TD>$in{$filename}</TD>";
$filename = "sixtyfiveft1";
$filename =~s/1/$x/g;
print MAIL "<TD>$in{$filename}</TD>";
$filename = "hundredft1";
$filename =~s/1/$x/g;
print MAIL "<TD>$in{$filename}</TD>";
$filename = "othft1";
$filename =~s/1/$x/g;
print MAIL "<TD>$in{$filename}</TD>";
$filename = "price1";
$filename =~s/1/$x/g;
print MAIL "<TD ALIGN='right'>$in{$filename}</TD>";
$filename = "cutfee1";
$filename =~s/1/$x/g;
print MAIL "<TD ALIGN='right'>$in{$filename}</TD>";
$filename = "total1";
$filename =~s/1/$x/g;
print MAIL "<TD ALIGN='right'>$in{$filename}</TD>";
print MAIL "</TR>";
}
}
print MAIL "<TR><TD COLSPAN='11'> </TD><TD>Total Order</TD><TD ALIGN='right'>$in{Total}</TD></TR>";
print MAIL "</TABLE></BODY></HTML>";
close (MAIL);
open (MAIL, "|$mailprog -t") || die "Can't open mail program\n";
print MAIL "To: $in{'myemail2'}\n";
print MAIL "Reply-To: $in{'myemail'}\n";
print MAIL "From: $in{'myemail'}\n";
print MAIL "Subject: Online Order Verification\n";
print MAIL "Content-type: text/html\n\n";
print MAIL "<HTML><BODY BGCOLOR='#acc293'>";
print MAIL "<P ALIGN='center'><BIG><BIG><BIG>SouthWest Greens Order</BIG><BR><BR>Please review your order for accuracy. If you have any problems, please call Donna Ogle at 800-334-8873.</BIG></BIG><BR><BR></P>";
print MAIL "<TABLE BORDER='2' BGCOLOR='c0cea8'><TR>";
print MAIL "<TD><B>Collection</B></TD><TD><B>Style</B></TD><TD><B>Name</B></TD><TD><B>Backing</B></TD><TD><B>Pile Height</B></TD><TD><B>Width</B></TD><TD><B>45ft</B></TD><TD><B>5ft</B></TD><TD><B>100ft</B></TD><TD><B>Other</B></TD><TD><B>Price</B></TD><TD><B>Cut Fee</B></TD><TD><B>Total</B></TD></TR>";
for ($x = 1; $x < $in{'recs'}; $x++)
{
$filename = "total1";
$filename =~s/1/$x/g;
if ($in{$filename} > 0)
{
$filename = "collection1";
$filename =~s/1/$x/g;
print MAIL "<TD>$in{$filename}</TD>";
$filename = "style1";
$filename =~s/1/$x/g;
print MAIL "<TD>$in{$filename}</TD>";
$filename = "name1";
$filename =~s/1/$x/g;
print MAIL "<TD>$in{$filename}</TD>";
$filename = "backing1";
$filename =~s/1/$x/g;
print MAIL "<TD>$in{$filename}</TD>";
$filename = "pileheight1";
$filename =~s/1/$x/g;
print MAIL "<TD>$in{$filename}</TD>";
$filename = "width1";
$filename =~s/1/$x/g;
print MAIL "<TD>$in{$filename}</TD>";
$filename = "fortyfiveft1";
$filename =~s/1/$x/g;
print MAIL "<TD>$in{$filename}</TD>";
$filename = "sixtyfiveft1";
$filename =~s/1/$x/g;
print MAIL "<TD>$in{$filename}</TD>";
$filename = "hundredft1";
$filename =~s/1/$x/g;
print MAIL "<TD>$in{$filename}</TD>";
$filename = "othft1";
$filename =~s/1/$x/g;
print MAIL "<TD>$in{$filename}</TD>";
$filename = "price1";
$filename =~s/1/$x/g;
print MAIL "<TD ALIGN='right'>$in{$filename}</TD>";
$filename = "cutfee1";
$filename =~s/1/$x/g;
print MAIL "<TD ALIGN='right'>$in{$filename}</TD>";
$filename = "total1";
$filename =~s/1/$x/g;
print MAIL "<TD ALIGN='right'>$in{$filename}</TD>";
print MAIL "</TR>";
}
}
print MAIL "<TR><TD COLSPAN='11'> </TD><TD>Total Order</TD><TD ALIGN='right'>$in{Total}</TD></TR>";
print MAIL "</TABLE></BODY></HTML>";
close (MAIL);
Thanks for any help!
#!/usr/bin/perl
require "cgi-lib.pl";
$userok="no";
&ReadParse;
$mailprog='/usr/sbin/sendmail';
print "Content-type: text/html\n\n";
print "<HTML>";
print "<BODY BGCOLOR='#acc293' FONT COLOR='black'>";
print "<P ALIGN='center'>";
print "<IMG SRC='/images/swg.jpg' ALT='Southwest Greens'><BR><BR></P>";
open (MAIL, "|$mailprog -t") || die "Can't open mail program\n";
print MAIL "To: $in{'myemail'}\n";
print MAIL "Reply-To: $in{'custemail'}\n";
print MAIL "From: $in{'custemail'}\n";
print MAIL "Subject: Online Order\n";
print MAIL "Content-type: text/html\n\n";
print MAIL "<HTML><BODY BGCOLOR='#acc293'>";
print MAIL "<P ALIGN='center'><BIG><BIG>SouthWest Greens Order</BIG></BIG><BR><BR></P>";
print MAIL "<TABLE BORDER='2' BGCOLOR='c0cea8'><TR>";
print MAIL "<TD><B>Collection</B></TD><TD><B>Style</B></TD><TD><B>Name</B></TD><TD><B>Backing</B></TD><TD><B>Pile Height</B></TD><TD><B>Width</B></TD><TD><B>45ft</B></TD><TD><B>5ft</B></TD><TD><B>100ft</B></TD><TD><B>Other</B></TD><TD><B>Price</B></TD><TD><B>Cut Fee</B></TD><TD><B>Total</B></TD></TR>";
for ($x = 1; $x < $in{'recs'}; $x++)
{
$filename = "total1";
$filename =~s/1/$x/g;
if ($in{$filename} > 0)
{
$filename = "collection1";
$filename =~s/1/$x/g;
print MAIL "<TD>$in{$filename}</TD>";
$filename = "style1";
$filename =~s/1/$x/g;
print MAIL "<TD>$in{$filename}</TD>";
$filename = "name1";
$filename =~s/1/$x/g;
print MAIL "<TD>$in{$filename}</TD>";
$filename = "backing1";
$filename =~s/1/$x/g;
print MAIL "<TD>$in{$filename}</TD>";
$filename = "pileheight1";
$filename =~s/1/$x/g;
print MAIL "<TD>$in{$filename}</TD>";
$filename = "width1";
$filename =~s/1/$x/g;
print MAIL "<TD>$in{$filename}</TD>";
$filename = "fortyfiveft1";
$filename =~s/1/$x/g;
print MAIL "<TD>$in{$filename}</TD>";
$filename = "sixtyfiveft1";
$filename =~s/1/$x/g;
print MAIL "<TD>$in{$filename}</TD>";
$filename = "hundredft1";
$filename =~s/1/$x/g;
print MAIL "<TD>$in{$filename}</TD>";
$filename = "othft1";
$filename =~s/1/$x/g;
print MAIL "<TD>$in{$filename}</TD>";
$filename = "price1";
$filename =~s/1/$x/g;
print MAIL "<TD ALIGN='right'>$in{$filename}</TD>";
$filename = "cutfee1";
$filename =~s/1/$x/g;
print MAIL "<TD ALIGN='right'>$in{$filename}</TD>";
$filename = "total1";
$filename =~s/1/$x/g;
print MAIL "<TD ALIGN='right'>$in{$filename}</TD>";
print MAIL "</TR>";
}
}
print MAIL "<TR><TD COLSPAN='11'> </TD><TD>Total Order</TD><TD ALIGN='right'>$in{Total}</TD></TR>";
print MAIL "</TABLE></BODY></HTML>";
close (MAIL);
open (MAIL, "|$mailprog -t") || die "Can't open mail program\n";
print MAIL "To: $in{'myemail2'}\n";
print MAIL "Reply-To: $in{'myemail'}\n";
print MAIL "From: $in{'myemail'}\n";
print MAIL "Subject: Online Order Verification\n";
print MAIL "Content-type: text/html\n\n";
print MAIL "<HTML><BODY BGCOLOR='#acc293'>";
print MAIL "<P ALIGN='center'><BIG><BIG><BIG>SouthWest Greens Order</BIG><BR><BR>Please review your order for accuracy. If you have any problems, please call Donna Ogle at 800-334-8873.</BIG></BIG><BR><BR></P>";
print MAIL "<TABLE BORDER='2' BGCOLOR='c0cea8'><TR>";
print MAIL "<TD><B>Collection</B></TD><TD><B>Style</B></TD><TD><B>Name</B></TD><TD><B>Backing</B></TD><TD><B>Pile Height</B></TD><TD><B>Width</B></TD><TD><B>45ft</B></TD><TD><B>5ft</B></TD><TD><B>100ft</B></TD><TD><B>Other</B></TD><TD><B>Price</B></TD><TD><B>Cut Fee</B></TD><TD><B>Total</B></TD></TR>";
for ($x = 1; $x < $in{'recs'}; $x++)
{
$filename = "total1";
$filename =~s/1/$x/g;
if ($in{$filename} > 0)
{
$filename = "collection1";
$filename =~s/1/$x/g;
print MAIL "<TD>$in{$filename}</TD>";
$filename = "style1";
$filename =~s/1/$x/g;
print MAIL "<TD>$in{$filename}</TD>";
$filename = "name1";
$filename =~s/1/$x/g;
print MAIL "<TD>$in{$filename}</TD>";
$filename = "backing1";
$filename =~s/1/$x/g;
print MAIL "<TD>$in{$filename}</TD>";
$filename = "pileheight1";
$filename =~s/1/$x/g;
print MAIL "<TD>$in{$filename}</TD>";
$filename = "width1";
$filename =~s/1/$x/g;
print MAIL "<TD>$in{$filename}</TD>";
$filename = "fortyfiveft1";
$filename =~s/1/$x/g;
print MAIL "<TD>$in{$filename}</TD>";
$filename = "sixtyfiveft1";
$filename =~s/1/$x/g;
print MAIL "<TD>$in{$filename}</TD>";
$filename = "hundredft1";
$filename =~s/1/$x/g;
print MAIL "<TD>$in{$filename}</TD>";
$filename = "othft1";
$filename =~s/1/$x/g;
print MAIL "<TD>$in{$filename}</TD>";
$filename = "price1";
$filename =~s/1/$x/g;
print MAIL "<TD ALIGN='right'>$in{$filename}</TD>";
$filename = "cutfee1";
$filename =~s/1/$x/g;
print MAIL "<TD ALIGN='right'>$in{$filename}</TD>";
$filename = "total1";
$filename =~s/1/$x/g;
print MAIL "<TD ALIGN='right'>$in{$filename}</TD>";
print MAIL "</TR>";
}
}
print MAIL "<TR><TD COLSPAN='11'> </TD><TD>Total Order</TD><TD ALIGN='right'>$in{Total}</TD></TR>";
print MAIL "</TABLE></BODY></HTML>";
close (MAIL);
Thanks for any help!