perlunity.de - PERL | JAVASCRIPT | PHP | MySQL | APACHE



#!/COMMUNITY

Members: 5374
davon online: 1
weitere User: 22
Click for quality!




12.02.2012 / 02:07

Community-Member werden   |   Paßwort vergessen   |   OnlineMonitor (1) Wer ist online ... OnlineMonitor starten !
     

 

Home


PERLscripts


PHPscripts


JAVAscripts


Hilfreiches


Links2www


Newscenter


Community


Interna




Community  »  Perl: Allgemeines Forum zur Themenübersicht Themensuche Themenansicht in Thread-Modus


BeitragNeuling sucht Hilfe!
Seitenanfang
hallo leute,
ich habe ein problem und zwar möchte ich aus einer flashseite ein formular per perl/cgi versenden.

das formular hat eigene eingabefelder, denen per action-skript folgende befehle zugeordnet sind:

tabOrder = new Array("AnredeTitel", "Vorname", "Name", "Praxis", "Strasse","PLZ_Ort","Tel","Fax","Email","Mitteilung");
Selection.setFocus(tabOrder[0]);

der absende button sieht so aus:

on (release) {
recipient = "e@mail.de";
redirect = "http://www.domain.de/index_flash.html";
subject = "Internetanfrage";
getURL("http://www.domain.de/cgi-bin/userscript.pl", "", "POST");
}
on (release) {
gotoAndPlay("home");
}

der webhoster ist speicherhosting.com

das script sieht wie folgt aus (die datei ist als ascii auf den server geladen worden und die eigenschaften wurde auf 755 gesetzt):

#!/usr/bin/perl

######## EINSTELLUNGEN DIE SIE VORNEHMEN MÜSSEN #################

# Die Einstellungen sind bereits mit den gängigsten Werten vorbelegt
# Besonderes Augenmerk müßen Sie jedoch auf den genauen Eintrag des Mailprogramm Pathes legen!
# Diese Information hält Ihr Provider für Sie bereit.
# Vergewissern Sie sich auch das die Ausführung eigener Perl (CGI) Scripte auf Ihrem Webspace / Paket
# erlaubt ist!
# Sämtliche Einstellungen dürfen nur zwischen den beiden Hochzeichen vorgenommen werden
# alles andere lassen Sie (wenn Sie kein Perl können/verstehen) wie es ist.

# Hier tragen Sie zwischen den beiden Hochzeichen ('') den Path zu Ihrem Sendmailprogramm ein
# Fragen Sie ggf. Ihren Provider. Die Voreinstellung 'usr/sbin/sendmail' wird häufig verwendet
# und funktioniert meist.

$mailprogramm='/usr/sbin/sendmail';

# In $subtext steht die Überschrift der E-Mail unter der Sie die Formulardaten erhalten

$subtext='Mein Kontaktformular';

# In $antwort steht der Bestätigungstext den Ihr Absender nach versenden des Formulars sehen

$antwort='Vielen Dank! Das Formular wurde übermittelt.';

# In $sr steht die Schriftart der Antwort

$sr='Arial';

# In $sr_size steht die Grösse der Schrift

$sr_size='2';

################### ENDE EINSTELLUNGEN ##########################
# AB HIER NICHTS MEHR ÄNDERN WENN SIE NICHT GENAU WISSEN WAS SIE DA TUN! #######################

read(STDIN,$eingabe,$ENV{'CONTENT_LENGTH'});
$eingabe=~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C",hex($1))/eg;
$html="";
@pairs=split('&',$eingabe);
foreach $p (@pairs)
{
($key,$wert)=split('=',$p);
$wert=~s/\n//g;
$wert=~s/\+/ /g;
if ($key eq 'FormularTitel')
{
$wert=~s/#/ /g;
}
$hash{$key}=$wert;
$html="$html$key:\n$wert\n\n";
}

$MailPgm = $mailprogramm;
$Mail= "$hash{'ToMail'}";
$From= "$hash{'FormularTitel'}<$hash{'ToMail'}>";
$Subject= $subtext;

open (MAIL, "|$MailPgm $Mail") || die "Fehler beim Zugriff auf $MailPgm!\n";
print MAIL "From: $From\n";
print MAIL "Reply-To: $From\n";
print MAIL "To: $Mail\n";
print MAIL "Subject: $Subject\n\n";

print MAIL "Titel des Formulars: $hash{'FormularTitel'}\n";
print MAIL "\n";
print MAIL "$html\n";
print MAIL "\n";
print MAIL "\n";
print MAIL "\n";
close MAIL;

print "Content-type: text/html\n\n";
print <<eg;
<html>
<head>
</head>
<body bgcolor=white>
<font face=$sr size=$sr_size>$antwort</font>
</body>
</html>
eg

es kommt zwar die bestätigung: 'Vielen Dank! Das Formular wurde übermittelt.'

die mail kommt aber nicht an!

woran liegt das?
wer weiß hilfe!?

Datum: 02.11.2004-22:32

Beitragre: Neuling sucht Hilfe!
Seitenanfang
Also ich sehe da nirgendwo die Definition von $Mail. Die $Mail belegst du zwar durch "$hash{'ToMail'}" aber ich sehe auch nirgendwo den Parameter ToMail also kann der denke ich mal auch nicht in dem Hash drin vorkommen.

Lass dir doch mal in der Ausgabe $Mail mitausgeben, dann siehst du ob da überhaupt eine E-Mail Adresse drinsteht.

Datum: 03.11.2004-15:17

Beitragre: Neuling sucht Hilfe!
Seitenanfang
dumme frage: wie mache ich das?

wird die mail adresse nicht aus dem action skript von flash übernommen?

Datum: 03.11.2004-15:43

Beitragre: Neuling sucht Hilfe!
Seitenanfang
Ausgeben kannst du das indem du dort wo du die Textausgabe für den User machst einf $Mail einfügst:


<font face=$sr size=$sr_size>$Mail - $antwort</font>

Nun kenne ich mich mit Flash nicht sonderlich aus, aber ich sehe bei dir nirgendwo dass die Empfänger E-Mail-Adresse mit an das Perl Skript übergeben wird.

Wenn die Empfänger-Email immer gleich ist, dann setze die doch einfach direkt im Skript fest dass die Mail versendet.

Auch die Variable $hash{'FormularTitel'} sehe ich nirgends definiert.

Im Hash %hash hast du als Keys nur die Werte der an das Paramter übergebenen Variablen.

Versuch also einfach mal folgendes im Perl-Skript:


$MailPgm = $mailprogramm;
$Mail= "e\@mail.de";
$From= "$hash{'FormularTitel'}<$Mail>";
$Subject= $subtext;

open (MAIL, "|$MailPgm $Mail") || die "Fehler beim Zugriff auf $MailPgm!\n";
print MAIL "From: $From\n";
print MAIL "Reply-To: $From\n";
print MAIL "To: $Mail\n";
print MAIL "Subject: $Subject\n\n";

print MAIL "Titel des Formulars: $hash{'FormularTitel'}\n";
print MAIL "\n";
print MAIL "$html\n";
print MAIL "\n";
print MAIL "\n";
print MAIL "\n";
close MAIL;

Datum: 03.11.2004-16:10

Beitragre: Neuling sucht Hilfe!
Seitenanfang
Im Hash %hash hast du als Keys nur die Werte der an das Paramter übergebenen Variablen.

soll natürlich heißen:

Im Hash %hash hast du als Keys nur die Werte der an das Skript übergebenen Variablen.

Datum: 03.11.2004-16:11

Beitragre: Neuling sucht Hilfe!
Seitenanfang
vielen dank sven,
ich habe es geschafft.
gruß
newbie2004

Datum: 05.11.2004-00:20

-






-
-