|
|
 |

|

 |

| Community » Perl/CGI: Scripts des Perl-Archiv |
|
formular problem anfängerin
|
Seitenanfang |
Also... ich habe da ein Kontaktformularscript, dieses generiert mir einen anfrage.txt, der dann im cgi-bin landet. Funktioniert alles ABER ich muss immer auf den Server gehen um nach neuen Anfragen zusehen. Was muss ich machen damit diese generierte Textdatei automatisch per email bei mir landet? Achja, Homepage liegt bei Strato, darf eigene cgis verwenden. Vielen Dank Ist wahrscheinlich ein"Klacks"für euch alten Hasen.... Gruß Lotte
Datum: 22.11.2004-02:01

|
re: formular problem anfängerin
|
Seitenanfang |
| im grunde musst du statt in die text-datei zu schreiben, einfach nach sendmail schreiben: schau mal, wo im script bei dir irgendwas steht wie open(DATEI, ">>anfrage.txt") || die $!; daraus machst du dann open(SENDMAIL, "|/usr/sbin/sendmail -t") || die $!; falls sendmail woanders installiert ist, musst du den pfad entsprechend anpassen - frag dazu noch mal nach, wenn es schwierigkeiten gibt. dann setzt du noch folgende Zeilen ein: print SENDMAIL "To: deine\@email-adresse.de\n"; print SENDMAIL "From: anfrage\@email-adresse.de\n"; print SENDMAIL "Subject: Neue Anfrage\n\n"; und änderst nun noch die Zeilen, in denen in die Datei geschrieben wird, namentlich alles, was so aussieht (ausgegangen davon, dass die open(DATEI...-Zeile eben DATEI enthält, wenn's zB FILE ist, dann such danach) print FILE "irgendein text"; nach print SENDMAIL "irgendein text"; und wenn das erledigt ist, änderst du noch close(DATEI); nach close(SENDMAIL); fertig. mach ein backup vom script vor den änderungen - wenn's probleme gibt, poste mal das script.
Datum: 22.11.2004-11:51

|
re: formular problem anfängerin
|
Seitenanfang |
Danke erstmal für die schnelle Antwort<>! Wie gesagt-ich bin echt ein Simpel auf diesem Gebiet:)) Zu sendmail: wo muss ich das denn hinkopieren? Da liegtnix auf meinem ftp accout...was muss ich da "installieren"? also das script sieht so aus : Vielen,vielen Dank noch einmal... Gruß Lotte #!/usr/bin/perl5 # simpleform.cgi Version 1.0 # Dieses Skript nimmt Eingaben aus einer Form entgegen, # fügt sie an eine vorgegebene Datei an, und zeigt # dem Benutzer nochmals, was er eingegeben hat.$dateiname = 'umfrage.txt'; # In die Datei mit den Namen 'umfrage.txt' werd ich # meine Daten speichern. if ($ENV{'REQUEST_METHOD'} eq "GET") { $buffer = $ENV{'QUERY_STRING'}; } else { read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'}); } # Nehme Daten entgegen und kopiere sie in die # Variable $buffer @nvpairs = split(/&/,$buffer); # Ich teile den Datenstring in einzelne Teile. foreach $pair (@nvpairs) { # Ich decodiere jedes der Teil ($name, $value) = split(/=/, $pair); $value =~ tr/+/ /; $value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg; $in{$name} = $value; } print "Content-type: text/html \n\n"; # Sendet an den Web-Server den Content-type. print "<HTML><HEAD>\n"; print "<TITLE>Audionauten Blindensoftware</TITLE> \n"; print "</HEAD> \n"; print "<h2>Vielen Dank für Ihre Nachricht.</h2>\n"; print "Sie gaben ein:<hr><dl>\n"; print "<dd><b>Ihr Vorname ist : $in{'vorname'}</b>\n"; print "<p>"; print "<dd><b>Ihr Nachname ist : $in{'nachname'}</b>\n"; print "<p>"; print "<dd><b>Ihre Strasse : $in{'strasse'}</b>\n"; print "<p>"; print "<dd><b>Ihre Hausnummer : $in{'nummer'}</b>\n"; print "<p>"; print "<dd><b>Ihre Postleitzahl : $in{'plz'}</b>\n"; print "<p>"; print "<dd><b>Ihr Ort : $in{'ort'}</b>\n"; print "<p>"; print "<dd><b>Ihr Land : $in{'land'}</b>\n"; print "<p>"; print "<dd><b>Ihre Telefonnummer : $in{'telefon'}</b>\n"; print "<p>"; print "<dd><b>Ihre Emailadresse : $in{'mail'}</b>\n"; print "<p>"; print "<dd><b>Sie haben angefragt : $in{'exemplar'}</b>\n"; print "<p>"; print "<dd><b>Ihr Kommentar:<br> $in{'kommentar'}</b>\n"; print "<p>"; print "<p>"; print "<p>"; print "<p>"; print "<dd><b>Sie können diese Seite jetzt schließen\n"; print "<p>"; # No comment here :)) open(filehandle,">>$dateiname") || &Fehlermeldung("Kann die Datei $dateiname nicht öffnen!"); print filehandle "-------Neuer Eintrag-------\n"; print filehandle "Vorname = $in{'vorname'}\n"; print filehandle "Nachname = $in{'nachname'}\n"; print filehandle "Strasse = $in{'strasse'}\n"; print filehandle "Hausnummer = $in{'nummer'}\n"; print filehandle "PLZ= $in{'plz'}\n"; print filehandle "Ort = $in{'ort'}\n"; print filehandle "Land = $in{'land'}\n"; print filehandle "Telefon = $in{'telefon'}\n"; print filehandle "Emailadresse = $in{'mail'}\n"; print filehandle "Anzahl = $in{'exemplar'}\n"; print filehandle "Kommentar: $in{'kommentar'}\n\n"; close filehandle; print "</HTML>\n"; # Wir schliessen das HTML-Dokument exit(0);
Datum: 22.11.2004-14:39

|
re: formular problem anfängerin
|
Seitenanfang |
versuch's mal damit. #!/usr/bin/perl use strict; use CGI; use CGI::Carp qw(fatalsToBrowser);my $CGI = new CGI; my $params = $CGI->Vars; my $sendmail = '/usr/sbin/sendmail -t'; my $mail_to = 'lottes@web.de'; my $mail_from = 'lottes@web.de'; my $mail_subject = 'Neue Anfrage'; print "Content-type: text/html\n\n"; print "<HTML><HEAD>\n"; print "<TITLE>Audionauten Blindensoftware</TITLE> \n"; print "</HEAD> \n<BODY>\n"; print "<h2>Vielen Dank für Ihre Nachricht.</h2>\n"; print "Sie gaben ein:<hr><dl><p>\n"; print "<dd><b>Ihr Vorname ist : $$params{'vorname'}</b><br><br>\n"; print "<dd><b>Ihr Nachname ist : $$params{'nachname'}</b><br><br>\n"; print "<dd><b>Ihre Strasse : $$params{'strasse'}</b><br><br>\n"; print "<dd><b>Ihre Hausnummer : $$params{'nummer'}</b><br><br>\n"; print "<dd><b>Ihre Postleitzahl : $$params{'plz'}</b><br><br>\n"; print "<dd><b>Ihr Ort : $$params{'ort'}</b><br><br>\n"; print "<dd><b>Ihr Land : $$params{'land'}</b><br><br>\n"; print "<dd><b>Ihre Telefonnummer : $$params{'telefon'}</b><br><br>\n"; print "<dd><b>Ihre Emailadresse : $$params{'mail'}</b><br><br>\n"; print "<dd><b>Sie haben angefragt : $$params{'exemplar'}</b><br><br>\n"; print "<dd><b>Ihr Kommentar:<br> $$params{'kommentar'}</b><br><br>\n"; print "<dd><b>Sie können diese Seite jetzt schließen\n</p>"; print "\n</BODY>\n</HTML>\n"; open(SENDMAIL, "|$sendmail") || die "Kann sendmail nicht öffnen: $!"; print SENDMAIL "To: $mail_to\nFrom: $mail_from\nSubject: $mail_subject\n\n"; print SENDMAIL "Vorname = $$params{'vorname'}\n"; print SENDMAIL "Nachname = $$params{'nachname'}\n"; print SENDMAIL "Strasse = $$params{'strasse'}\n"; print SENDMAIL "Hausnummer = $$params{'nummer'}\n"; print SENDMAIL "PLZ= $$params{'plz'}\n"; print SENDMAIL "Ort = $$params{'ort'}\n"; print SENDMAIL "Land = $$params{'land'}\n"; print SENDMAIL "Telefon = $$params{'telefon'}\n"; print SENDMAIL "Emailadresse = $$params{'mail'}\n"; print SENDMAIL "Anzahl = $$params{'exemplar'}\n"; print SENDMAIL "Kommentar: $$params{'kommentar'}\n\n"; close(SENDMAIL); exit(0);
Datum: 22.11.2004-16:16

|
re: formular problem anfängerin
|
Seitenanfang |
script installiert. Daten in Formular eingegeben und dann bekomme ich diese Antwort: Software error: Undefined subroutine CGI::Varsund nun ? Lieben Gruß Lotte
Datum: 22.11.2004-17:08

|
re: formular problem anfängerin
|
Seitenanfang |
| okay, das bedeutet, dass deine Version von CGI.pm ziemlich alt ist. statt
my $params = $CGI->Vars;
etwas wie
my $params = {}; my @param_names = $query->param(); for my $param (@param_names) { $$params{$param} = $query->param($param); }
sollte dem abhilfe schaffen.
Datum: 22.11.2004-22:37

|
|

|

|

|
 |

|

|
|