Patrick Andrieu: IE öffnet DownloadDialog und führt Script nicht aus

Beitrag lesen

Hallo looneytune!

wohl wahr. Hätt ich auch gleich dran denken können den Code zu posten. War wohl doch bissl spät. Das Script sieht folgendermassen aus:

Na, damit kann man loslegen ;)

#! /usr/bin/perl

^ # hier gehört eigentlich kein Leerzeichen hin
       # -w (warnings) fehlt

#!/usr/bin/perl -w

use strict; # Weiter unten deklarierst Du schon die Variablen mit »my«, sei  
            # dann konsequent!

use CGI qw(:standard);
use CGI::Carp qw(fatalsToBrowser);

#init
print "Content-type: html\n\n";

^^^^ # siehe Antwort von Siechfred
                             # falscher Content-Type war auch mein Verdacht

#definitions
my $MailPgm = '/usr/sbin/sendmail';
my $Mail= "testmail@yahoo.de";
my $Anrede= param('anrede');
my $Name= param('nachname');
my $Vorname= param('vorname');
my $From= param('email');
my $Telefon= param('telefon');
my $Message= param('nachricht2');
my $Subject= "Kontaktanfrage via www.wodausch.com";
my $returnhtml= param('danke');

open (MAIL, "|$MailPgm $Mail") || die "Fehler beim Zugriff auf $MailPgm!\n";
print MAIL "Subject: $Subject\n\n";
print MAIL "From: $From\n";
print MAIL "Name: $Name\n";
print MAIL "Vorname: $Vorname\n";
print MAIL "Telefon: $Telefonnummer\n";
print MAIL "$Message\n";
close MAIL;

#Dankeseite an Browser senden:
print "$returnhtml\n";

^^^^^^^^^^^^^^^^^^^^^^^^^

Was ist der Inhalt von $returnhtml? Eine URL. Du sagst hier:
Gib aus "URL". Also bekommst Du eine URL - und zwar im Klartext.

Eine Weiterleitung erreichst Du mit:

print "Location: $returnhtml\n\n";

Da Du aber bereits oben einen HTTP-Header ausgibst, wird es nicht funktionieren. Streiche die Header-Ausgabe ganz oben, denn Du gibst ja kein HTML aus, sondern versendest Formulardaten per E-Mail. Dann klappt's auch mit der Dankeseite.

Viele Grüße aus Frankfurt/Main,
Patrick

--

_ - jenseits vom delirium - _
[link:hatehtehpehdoppelpunktslashslashwehwehwehpunktatomicminuseggspunktcomslash]
Nichts ist unmöglich? Doch!
Heute schon gegökt?
All'alba vincerò!