On Jan 24, Eduardo Cancino said:
>The next script runs looks pefectly in IE but in Netscape it shows the
>source of the html...
That is because IE does things that a browser should not do.
># recibe la forma.
>read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'});
>@pairs = split(/&/, $buffer);
Ugh. You should not try to deal with incoming form information yourself
-- use the standard CGI.pm module. Please.
># inicia variables.
>$to = "info\@domain.mx";
>$from = "info\@domain.mx";
>$subject = "Comentarios Sitio Web";
>
># manda el mail.
>open (MAIL,"|mail $to");
>print MAIL <<"END_top";
>
>"To: $to
>Reply-To: $to:
>Subject: $subject"
>
>END_top
That's not working, I can promise you that.
print MAIL << "END_top";
To: $to
Reply-To: $to
Subject: $subject
END_top
Notice I didn't quote the surrounding text.
>foreach $pair (@pairs)
>{
> ($name, $value) = split(/=/, $pair);
> $value =~ tr/+/ /;
> $value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
> $form{$name} = $value;
>
> if ($form{$name} ne "" && $form{$name} ne "no" && $name ne 'enviar') {
> print MAIL $name . " = ". $form{$name} . "\n";
> }
>}
This is bad too. Use CGI.pm. Please.
>
>close MAIL;
>
># imprime html.
>print <<WEB_page;
>
>Content-type: text/html
><!doctype html public "-//w3c//dtd html 3.2 final//en">
Here's the primary problem. You cannot place a newline before the HTTP
headers, and you MUST place an extra newline AFTER the HTTP headers.
print << "WEB_page";
Content-type: text/html
<!doctype ...>
...
WEB_page
Notice the difference?
--
Jeff "japhy" Pinyan [EMAIL PROTECTED] http://www.pobox.com/~japhy/
RPI Acacia brother #734 http://www.perlmonks.org/ http://www.cpan.org/
** Look for "Regular Expressions in Perl" published by Manning, in 2002 **
<stu> what does y/// stand for? <tenderpuss> why, yansliterate of course.
--
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]