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



#!/COMMUNITY

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




11.02.2012 / 23:56

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

 

Home


PERLscripts


PHPscripts


JAVAscripts


Hilfreiches


Links2www


Newscenter


Community


Interna




Community  »  Perl/CGI: Scripts des Perl-Archiv zur Themenübersicht Themensuche Themenansicht in Thread-Modus


Beitragformular 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

Beitragre: 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

Beitragre: 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

Beitragre: 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

Beitragre: formular problem anfängerin
Seitenanfang
script installiert. Daten in Formular eingegeben und dann bekomme ich diese Antwort:
Software error:
Undefined subroutine CGI::Vars

und nun ?
Lieben Gruß
Lotte

Datum: 22.11.2004-17:08

Beitragre: 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

-






-
-