Form mailer CGI script som inte vill fungera.
Hej.
Jag sitter och knåpar på ett beställningsformulär åt en kompis webbplats, jag får dock det inte mitt CGI skript att fungera... De ger mig just nu detta felmeddelande:
Internal Server Error
The server encountered an internal error or misconfiguration and was unable to complete your request.
Please contact the server administrator, drift@loopia.se and inform them of the time the error occurred, and anything you might have done that may have caused the error.
More information about this error may be available in the server error log.
Apache/2.2.22 (FreeBSD) PHP/5.3.10 with Suhosin-Patch Server at ** Port 80
Jag har dolt webbadressen, är det viktigt att ni behöver denna för att kunna hjälpa så kan jag ordna det i ett PM.
Det jag vill att skriptet ska göra är att ta informationen ur ett "FORM" i mitt html dokument och skicka detta som ett mail till en epost adress. Det är första gången jag ger mig in på så avancerad skriptskrivning och jag har lite dålig koll på vart jag ska börja. Det enda jag har testat är både binär och ASCII som överföringssätt i FTP klienten samt att det ska vara ordnat med filrättigheter (chmod 755).
Skriptet kommer här nedan:
#!/usr/bin/perl
use CGI;
# Create the CGI object
my $query = new CGI
# Output the http header
print $query->header ( );
# Capture the form results
my $namn = $query->param("namn");
my $adress = $query->param("adress");
my $email = $query->param("email");
my $color = $query->param("color");
my $dosantext = $query->param("dosantext");
my $dosantext2 = $query->param("dosantext2");
my $melodi = $query->param("melodi");
my $ovrigt = $query->param("ovrigt");
# Filter the form results
$namn = filter_field ( $namn );
$adress = filter_field ( $adress );
$email = filter_header_field ( $email );
$color = filter_field ( $color );
$dosantext = filter_field ( $dosantext );
$dosantext2 = filter_field ( $dosantext2 );
$melodi = filter_field ( $melodi );
$ovrigt = filter_field ( $ovrigt );
# Email the form results
open ( MAIL, "| /usr/sbin/sendmail -t" );
print MAIL "From: $email\n";
print MAIL "To: \@gmail.com\n";
print MAIL "Subject: Beställning\n\n";
print MAIL "$namn\n";
print MAIL "$email\n";
print MAIL "$adress\n";
print MAIL "$color\n";
print MAIL "$dosanstext\n";
print MAIL "$dosanstext2\n";
print MAIL "$melodi\n";
print MAIL "$ovrigt\n";
print MAIL "\n.\n";
close ( MAIL );
# Functions for filtering user input
sub filter_field
{
my $field = shift;
$field =~ s/From://gi;
$field =~ s/To://gi;
$field =~ s/BCC://gi;
$field =~ s/CC://gi;
$field =~ s/Subject://gi;
$field =~ s/Content-Type://gi;
return $field;
}
sub filter_header_field
{
my $field = shift;
$field =~ s/From://gi;
$field =~ s/To://gi;
$field =~ s/BCC://gi;
$field =~ s/CC://gi;
$field =~ s/Subject://gi;
$field =~ s/Content-Type://gi;
$field =~ s/[\0\n\r\|\!\/\<\>\^\$\%\*\&]+/ /g;
return $field;
}
Do the best with your life