I'm having the same header problem as the mark.
I removed all the headers and the script still functions,  but it doesn't 
print the cookie header.   There is a module for deleting previous headers but I 
can't remember what it's called.

#!C:/Perl/bin/perl.exe 
BEGIN{open(STDERR, ">./errors/order.txt")}
use strict;
use CGI;
my$q = CGI::new();

my%item;
if($q->param("Cemail")){&writeorder;}
else{&writecookie;}

sub writeorder{
}

sub writecookie{
  if($q->param("item")){
my$cookname = "cart";
     my$name = $q->param("item");
     $name =~ s/[^\w]//g;
     my$price = $q->param("price");
     $price =~ s/[^\d\.]//g;
     my$qty = $q->param("qty");
     $qty =~ s/[^\d]//g;
     [EMAIL PROTECTED] = $q->param();
     foreach(@keys){$item{$_} = $q->param($_);}
     my$opts = "";
     foreach(keys %item){unless(/price|item|qty|x|y/){$opts .= "$_: 
$item{$_}*"}}
     my$item = "name=$name|price=$price|qty=$qty|allopts=$opts--";
     my$bc = $q->cookie($cookname);
     [EMAIL PROTECTED] = split(/\n/, $bc);
     my$fl = 0;
     foreach(@allitems){
         if($fl){$_ = ""}
         if(/$name/){
           $fl = 1;
           s/qty=.*?\|?/qty=$qty/;  
           s/price=.*?\|/price=$price/; 
         }
       }
     unless($fl){push(@allitems, $item);}
     my$ck;
     foreach(@allitems){$ck .= "$_\n";}
     my $cookie = $q->cookie(
                -NAME    => $cookname,
                -VALUE   => $ck,
                -EXPIRES => "1d"
                );  


[EMAIL PROTECTED] = split(/\~/, $opts);
$opts[0] = "($opts[0]";
for(my$i=0;$i<@opts;$i++){if($i < @opts-1){$opts[$i] .= ",  "}}
my$no = @opts -1;
$opts[$no] = "$opts[$no])";
print $q->header(-COOKIE => $cookie),


print qq{
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<HTML><HEAD><TITLE>ConquistaDoors.com</TITLE>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
<META HTTP-EQUIV="Content-Language" CONTENT="EN-GB">
</SCRIPT>
</HEAD><BODY class="main">
<SCRIPT type='text/javascript'>
alert('The item \\n $name @opts\\n was added to your cart.  The option to 
remove items is given on the checkout page.');
document.location.href='$ENV{'HTTP_REFERER'}';
</SCRIPT>
</BODY></HTML>
};
}

}

Reply via email to