Umleitung auf eine andere Seite
Chris
- perl
Hallo zusammen,
für das nachfolgende Skript möchte ich eigentlich nicht, dass der User nur die Meldung bekommt "Mail wurde versendet", sondern ich möchte, dass der User auf eine Danke"html"seite umgeleitet wird.
Wie lautet der Befehl dazu? Wäre super wenn Ihr helfen könntet.
Anbei der Code:
#!/usr/bin/perl
my $from = "Absender";
my $email = "XXX@XXX.de";
my $subject = "Feedback-Formular";
my $key = '';
my $val = '';
my %in = ();
my $in = '';
if ( $ENV{REQUEST_METHOD} eq 'POST'){
read(STDIN, $in, $ENV{CONTENT_LENGTH});
}else{
$in = $ENV{QUERY_STRING};#GET lesen
}
for(split/&/,$in){##Input nach Paaren splitten key=val
($key , $val) = split/=/;#splitten nach key=val
$key =~ y/+/ /;# + durch Space ersetzen
$key =~ s/%(..)/pack("c",hex($1))/ge;#Sonderzeichen decodieren
$val =~ y/+/ /;# + durch Space ersetzen
$val =~ s/%(..)/pack("c",hex($1))/ge;
$in{$key} .= $val;
}
print "Content-type: text/html\n\n";
open (MAIL,"|/usr/sbin/sendmail -t");
print MAIL "From:$from\n";
print MAIL "To:$email\n";
print MAIL "Subject:$subject\n\n";
print MAIL"Anrede => $in{'anrede'}\n";
print MAIL"Name => $in{'name'}\n";
print MAIL"Vorname => $in{'vorname'}\n";
print MAIL"Strasse => $in{'strasse'}\n";
print MAIL"Hausnummer => $in{'hausnummer'}\n";
print MAIL"PLZ => $in{'plz'}\n";
print MAIL"Wohnort => $in{'wohnort'}\n";
print MAIL"Emailadresse => $in{'emailadresse'}\n";
print MAIL"Text => $in{'text'}\n";
print MAIL"Wunsch => $in{'wunsch'}\n";
print MAIL"Bewertung => $in{'vote'}\n";
close (MAIL);
print "Mail wurde gesendet";
Gruss Chris.
Hallo,
ersetzte
print "Mail wurde gesendet";
durch
print "Location: danke.html\n\n";
Bis dann...
Alex :)
hi alex,
dankeschön.
gruss und ein schönes wochenende.
chris
Hi, ich schon wieder:
print "Location: danke.html\n\n";
mit diesem befehl bekomme ich im browser die location angezeigt.
ich meine jedoch, dass der user nach dem abdrücken des submit buttons auf die dankeseite umgeleitet wird.
oder habe ich was falsch verstanden?
plz help.
dankeschön. chris
Hi,
sorry, falsch eingefügt. klappt alles :)
cu chris
use Mosche;
my $key = '';
my $val = '';
my %in = ();
my $in = '';
if ( $ENV{REQUEST_METHOD} eq 'POST'){
read(STDIN, $in, $ENV{CONTENT_LENGTH});
}else{
$in = $ENV{QUERY_STRING};#GET lesen
}
for(split/&/,$in){##Input nach Paaren splitten key=val
($key , $val) = split/=/;#splitten nach key=val
$key =~ y/+/ /;# + durch Space ersetzen
$key =~ s/%(..)/pack("c",hex($1))/ge;#Sonderzeichen decodieren
$val =~ y/+/ /;# + durch Space ersetzen
$val =~ s/%(..)/pack("c",hex($1))/ge;
$in{$key} .= $val;
}
_Bitte_ verzichte auf diesen Code, und benutze CGI.pm:
use CGI;
my $q = new CGI;
Parameter bekommst du dann mit $q->param('dein_key');
Wenn du weiterhin dein %in behalten willst, benutze folgendes:
my %in;
$in{$_} = $q->param($_) foreach $q->param();
Ich möchte darauf hinweisen, dass dieser Code es dir erlaubt, auf den gesamten _Schmus_ da oben zu verzichten, er ist aber nicht sehr performant, da jedesmal deine gesamten Parameter ausgelesen werden, obwohl du vielleicht nicht alle brauchst. Es ist aber mit _Sicherheit_ besser als dein Code.
use Tschoe qw(Matti);