[GastForen Archiv Perl und CGI absender in einem form-mailer

  • Suche
  • Hilfe
  • Lesezeichen
  • Benutzerliste
Archiv - Archivierte Foren
Themen
Beiträge
Moderatoren
Letzter Beitrag

absender in einem form-mailer

pat87
Beiträge gesamt: 581

26. Apr 2004, 18:01
Beitrag # 1 von 17
Bewertung:
(8658 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
hallo zusammen,

ich verwenda dieses script zum versenden von formulardaten. meine frage: kann ich es so einstellen, dass der absender aus dem formular-feld 'e-mail' verwendet wird?


#!/usr/bin/perl

# -------> SMTP-Programm zum Versenden der Mail:
$Sendmail_Prog = "/usr/lib/sendmail";

# -------> Modul f¸r CGI-Scripts einbinden:
use CGI;

# -------> Modul f¸r CGI-Scripts zum Einlesen der Formulardaten anwenden:
$query = new CGI;
@names = $query->param;

# -------> interne Daten aus den erwarteten hidden-Feldern auslesen:
$delimiter = $query->param('delimiter'); # ---> Begrenzerzeichen zwischen name und value
$mailto = $query->param('mailto'); # ---> Empf‰ngeradresse
$returnhtml = $query->param('return'); # ---> URL f¸r Dankeseite
$subject = $query->param('subject'); # ---> E-Mail-Subject


# -------> Text der E-Mail aus den Formulardaten ermitteln:
$mailtext = "";
foreach(@names) {
$name = $_;
@values = "";
@values = $query->param($name);
if($name ne "mailto" && $name ne "return" && $name ne "subject" && $name ne "delimiter") {
foreach $value (@values) {
$mailtext = $mailtext.$name;
$mailtext = $mailtext.$delimiter;
$mailtext = $mailtext.$value."\n";
}
}
}

# -------> E-Mail versenden:
open(MAIL,"|$Sendmail_Prog -t") || print STDERR "Mailprogramm konnte nicht gestartet werden\n";
print MAIL "To: admin\@pat87.ch\n";
print MAIL "From: formular\@pat87.ch\n";
print MAIL "Subject: $subject\n\n";
print MAIL "$mailtext\n";
close(MAIL);

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

ich wäre für jede antwort froh...

mfg p@
---
mailto:admin@pat87.ch
http://www.pat87.ch/
X

absender in einem form-mailer

SabineP
Beiträge gesamt: 7586

26. Apr 2004, 18:43
Beitrag # 2 von 17
Beitrag ID: #81989
Bewertung:
(8656 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo pat,

1. nenne das Formularfeld vorsichtshalber "email"

In der Variable $absender steht dann der Inhalt des Formularfeldes mit dem Namen "email"

2. In diesem Teil des Scriptes $absender noch hinzufügen:

# -------> interne Daten aus den erwarteten hidden-Feldern auslesen:
$delimiter = $query->param('delimiter'); # ---> Begrenzerzeichen zwischen name und value
$returnhtml = $query->param('return'); # ---> URL für Dankeseite
$subject = $query->param('subject'); # ---> E-Mail-Subject
$absender = $query->param('email'); # ---> Absender


3. In diesem Teil des Scriptes in die From-Zeile die Variable $absender einfügen:

# -------> E-Mail versenden:
open(MAIL,"|$Sendmail_Prog -t") || print STDERR "Mailprogramm konnte nicht gestartet werden\n";
print MAIL "To: admin\@pat87.ch\n";
print MAIL "From: $absender\n";
print MAIL "Subject: $subject\n\n";
print MAIL "$mailtext\n";
close(MAIL);

Gruß Sabine


als Antwort auf: [#81984]

absender in einem form-mailer

pat87
Beiträge gesamt: 581

26. Apr 2004, 21:10
Beitrag # 3 von 17
Beitrag ID: #82033
Bewertung:
(8656 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
funktioniert tip top.

noch was: wie und wo kann ich eine feldeingabe erzwingen?
im formular?
im cgi-script?


mfg p@
---
mailto:admin@pat87.ch
http://www.pat87.ch/


als Antwort auf: [#81984]

absender in einem form-mailer

SabineP
Beiträge gesamt: 7586

26. Apr 2004, 22:51
Beitrag # 4 von 17
Beitrag ID: #82057
Bewertung:
(8656 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Am einfachsten geht´s mit Javascript im Formular.
Hier ein Beispiel für das Formularfeld mit dem Namen "email":

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Formular</title>

<script language="javascript" type="text/javascript">

function pruef()
{
if(document.anfrageformular.email.value == ""){
alert("Geben Sie bitte Ihre E-Mail-Adresse ein!");
document.anfrageformular.email.focus();
return false;
}
}

</script>
</head>
<body>
<form method="POST" action="mail.pl" name="anfrageformular" onSubmit="return pruef()">
<input type="text" name="email" size="30" value="">
<input type="submit">
</form>
</body>
</html>

Gruß Sabine


als Antwort auf: [#81984]

absender in einem form-mailer

pat87
Beiträge gesamt: 581

1. Mai 2004, 16:01
Beitrag # 5 von 17
Beitrag ID: #83062
Bewertung:
(8656 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
kann ich denn mit diesem script auch 2 oder 3 feld-eingaben erzwingen?


mfg p@
---
mailto:admin@pat87.ch
http://www.pat87.ch/


als Antwort auf: [#81984]

absender in einem form-mailer

SabineP
Beiträge gesamt: 7586

1. Mai 2004, 16:18
Beitrag # 6 von 17
Beitrag ID: #83065
Bewertung:
(8656 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Ja natürlich lassen sich auch mehrere Felder prüfen.
Hier noch ein Feld mit dem Namen "name"

function pruef()
{

if(document.anfrageformular.email.value == ""){
alert("Geben Sie bitte Ihre E-Mail-Adresse ein!");
document.anfrageformular.email.focus();
return false;
}

if(document.anfrageformular.name.value == ""){
alert("Geben Sie bitte Ihren Namen ein!");
document.anfrageformular.name.focus();
return false;
}

}

Gruß Sabine


als Antwort auf: [#81984]

absender in einem form-mailer

pat87
Beiträge gesamt: 581

8. Mai 2004, 14:02
Beitrag # 7 von 17
Beitrag ID: #84389
Bewertung:
(8656 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
das hat jetzt nicht direkt mit dem absender zu tun, aber wie kann ich es einstellen, dass es bei jedem mail, das das formular schreibt so heisst:

<name> mit der mail-adresse <email> hat ihnen folgende nachricht gesendet:
<nachricht>

wobei die in den klammern vorhandenen werte aus dem formular gelesen werden...

z.b.

patrick buff mit der mailadresse admin@pat87.ch hat ihnen folgende nachricht gesendet:
hallo patrick, tolle homepage...

natürlich wäre es auch praktisch, dass ich trotzdem als absender die mail-adresse habe (einfachere rückantwort...)

mfg p@
---
mailto:admin@pat87.ch
http://www.pat87.ch/


als Antwort auf: [#81984]

absender in einem form-mailer

SabineP
Beiträge gesamt: 7586

9. Mai 2004, 01:05
Beitrag # 8 von 17
Beitrag ID: #84459
Bewertung:
(8656 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hi Pat

folgende Abschnitte im Script ändern:

# -------> interne Daten aus den erwarteten hidden-Feldern auslesen:
$delimiter = $query->param('delimiter'); # ---> Begrenzerzeichen zwischen name und value
$returnhtml = $query->param('return'); # ---> URL für Dankeseite
$subject = $query->param('subject'); # ---> E-Mail-Subject
$absender = $query->param('email'); # ---> E-Mail des Absenders
$name = $query->param('name'); # ---> Name des Absenders

# -------> Text der E-Mail aus den Formulardaten ermitteln:
$mailtext = "$name mit der mail-adresse $absender hat ihnen folgende nachricht gesendet:\n\n";


Gruß Sabine


als Antwort auf: [#81984]
(Dieser Beitrag wurde von SabineP am 9. Mai 2004, 01:08 geändert)

absender in einem form-mailer

pat87
Beiträge gesamt: 581

25. Mai 2004, 19:07
Beitrag # 9 von 17
Beitrag ID: #87204
Bewertung:
(8656 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
und wie kann ich es ändern, dass der absender mit dem namen schickt ( pat &lt;admin@pat87.ch&gt; ) wobei: name <e-mail> ist...

mfg p@
---
mailto:admin@pat87.ch
http://www.pat87.ch/


als Antwort auf: [#81984]

absender in einem form-mailer

oesi50
  
Beiträge gesamt: 2315

25. Mai 2004, 20:26
Beitrag # 10 von 17
Beitrag ID: #87216
Bewertung:
(8656 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
hi pat,

vielleicht so?

print MAIL "From: $name <$absender>\n";


Grüße Oesi
Ich weiß, dass ich nichts weiß... (Sokrates)


als Antwort auf: [#81984]

absender in einem form-mailer

pat87
Beiträge gesamt: 581

25. Mai 2004, 21:14
Beitrag # 11 von 17
Beitrag ID: #87224
Bewertung:
(8656 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
> vielleicht so?
wenn ich die antwort gewusst hätte, hätte ich nicht gefragt...

: )) nei, vielen dank

mfg p@
---
mailto:admin@pat87.ch
http://www.pat87.ch/


als Antwort auf: [#81984]

absender in einem form-mailer

pat87
Beiträge gesamt: 581

25. Mai 2004, 22:00
Beitrag # 12 von 17
Beitrag ID: #87229
Bewertung:
(8656 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
wo liegt hier der fehler???

unter http://www.pat87.ch/dvd_formular.html ist das formular aber es geht nicht richtig, das ich die auswahl auch angezeigt gekriege:

#!/usr/bin/perl

# -------> SMTP-Programm zum Versenden der Mail:
$Sendmail_Prog = "/usr/lib/sendmail";

# -------> Modul f¸r CGI-Scripts einbinden:
use CGI;

# -------> Modul f¸r CGI-Scripts zum Einlesen der Formulardaten anwenden:
$query = new CGI;
@names = $query->param;

# -------> interne Daten aus den erwarteten hidden-Feldern auslesen:
$delimiter = $query->param('delimiter');
$returnhtml = $query->param('return');
$subject = $query->param('subject');
$absender = $query->param('email');
$name = $query->param('name');
$dvd = $query->param('dvd');
$dvd2 = $query->param('dvd2');
$dvd3 = $query->param('dvd3');

# -------> Text der E-Mail aus den Formulardaten ermitteln:
$mailtext = "$name will folgende dvd's:\n $dvd\n $dvd2\n $dvd3";


# -------> E-Mail versenden:
open(MAIL,"|$Sendmail_Prog -t") || print STDERR "mailprogramm konnte nicht gestartet werden\n";
print MAIL "To: admin\@pat87.ch\n";
print MAIL "From: $name <$absender>\n";
print MAIL "Subject: $subject\n\n";
print MAIL "$mailtext\n";
close(MAIL);

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


vielen dank schon im voraus

mfg p@
---
mailto:admin@pat87.ch
http://www.pat87.ch/


als Antwort auf: [#81984]

absender in einem form-mailer

oesi50
  
Beiträge gesamt: 2315

25. Mai 2004, 22:32
Beitrag # 13 von 17
Beitrag ID: #87232
Bewertung:
(8656 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
was geht denn nicht?
beschreibe doch mal Dein Problem etwas genauer.

Grüße Oesi
Ich weiß, dass ich nichts weiß... (Sokrates)


als Antwort auf: [#81984]

absender in einem form-mailer

pat87
Beiträge gesamt: 581

26. Mai 2004, 09:00
Beitrag # 14 von 17
Beitrag ID: #87261
Bewertung:
(8656 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
wenn du welche dvd's ausgewählt hat, so zeigt es mir diese in dem mail nicht an... ändere doch mal kurz das script für deine mail-adresse und versuche es mal...

bitte schreibe mir dann, an was es liegt, wenn du es findest...

mfg p@
---
mailto:admin@pat87.ch
http://www.pat87.ch/


als Antwort auf: [#81984]

absender in einem form-mailer

oesi50
  
Beiträge gesamt: 2315

26. Mai 2004, 11:59
Beitrag # 15 von 17
Beitrag ID: #87316
Bewertung:
(8656 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
hi Pat,

lade Dir doch mal dieses Script

http://vsrv.de/download/info.cgi

und rufe es statt Deines Mailscriptes auf. Damit kannst Du die übergebenen Parameter feststellen.

Grüße Oesi
Ich weiß, dass ich nichts weiß... (Sokrates)


als Antwort auf: [#81984]
X