[GastForen Programmierung/Entwicklung PHP und MySQL php Formular: Sender= E-Mail Adresse

  • Suche
  • Hilfe
  • Lesezeichen
  • Benutzerliste
Themen
Beiträge
Moderatoren
Letzter Beitrag

php Formular: Sender= E-Mail Adresse

faustus
Beiträge gesamt: 140

15. Sep 2011, 11:16
Beitrag # 1 von 3
Bewertung:
(2465 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo
bei einem php Formular möchte ich, dass die Sender-Emailadresse des Formulars automatisch vom Feld E-Mail, das vom Kunden eingefüllt wird, übernommen wird, wie mach ich das?

Hier der code in der php-Site:
<?php
header('Content-Type: text/html; charset=iso-8859-1');
require("formmail.php");
formmail("[email protected]???????",
"[email protected]",
"Reservationsanfrage",
" ",
"Name,Vorname,Adresse,Plz_Ort,Telefon,Email",
"http://www.meinedomain.ch/pages/danke.html",
"http://www.meinedomain.ch/pages/fehler.html");
?>



Hier der code vom formmail.php:

class FormMailClass
{
var $version;
var $sender;
var $recipients;
var $subject;
var $intro;
var $required;

var $errorURL;
var $followupURL;

function FormMailClass()
{
$this->version = "0.1";
$this->sender = null;
$this->recipients = array();
$this->subject = sprintf("formmail %s at %s", $this->version, $this->getScriptURL());
$this->intro = sprintf("The following was entered into the form at\n%s", $this->getScriptURL());
$this->required = array();
$this->errorURL = null;
$this->followupURL = null;
}

function fail($m, $c = 1)
{
printf("<html><title>formmail.php</title><body>%s</body></html>", $m);
exit($c);
}

function setSender($s)
{
if (!$this->isEmail($s)) {
$this->fail("Sender address '$s' is not a valid email address.");
}
$this->sender = $s;
}

function addRecipient($r)
{
if (!$this->isEmail($r)) {
$this->fail("Recipient address '$r' is not a valid email address.");
}
$this->recipients[] = $r;
}

function setSubject($s)
{
$this->subject = $s;
}

function setIntro($i)
{
$this->intro = $i;
}

function setRequiredFields($req)
{
$this->required = array();
foreach ($req as $r) {
if (trim($r) != "") {
$this->required[] = $r;
}
}
}

function setFollowupURL($u)
{
$this->followupURL = $this->absoluteURL($u);
}

function setErrorURL($u)
{
$this->errorURL = $this->absoluteURL($u);
}

function absoluteURL($r)
{
if (!ereg("^https?://", $r) && !ereg("^/", $r)) {
$r = sprintf("%s%s",
dirname($_SERVER["SCRIPT_NAME"]),
$r);
}
if (!ereg("https?://", $r)) {
if (isset($_SERVER["HTTPS"]) && $_SERVER["HTTPS"] == "on") {
$scheme = "https";
} else {
$scheme = "http";
}
$r = sprintf("%s://%s%s",
$scheme,
$_SERVER["HTTP_HOST"],
$r);
}
return $r;
}

function getScriptURL()
{
return sprintf("http://%s%s", $_SERVER["HTTP_HOST"], $_SERVER["SCRIPT_NAME"]);
}

function isEmail($email)
{
// Ensure there is only one @ symbol and the parts have the
// correct lengths
if (!ereg("([^@]{1,64})@([^@]{1,255})", $email, $parts)) {
return false;
}

// Split local part
$local = explode(".", $parts[1]);

// Check individual local parts
foreach ($local as $l) {
if (!ereg("^(([A-Za-z0-9!#$%&'*+/=?^_`{|}~-][A-Za-z0-9!#$%&'*+/=?^_`{|}~\.-]{0,63})|(\"[^(\\|\")]{0,62}\"))$", $l)) {
return false;
}
}

// Check if domain is an IP address
if (ereg("^\[?[0-9\.]+\]?$", $parts[2])) {
return true;
}

// Split domain part
$domain = explode(".", $parts[2]);

// Check individual domain parts
foreach ($domain as $d) {
// Since there are IDN's, nothing can be tested here anymore
// except if there is an empty domain part (means that there
// were two consecutive dots).
if ($d == "") {
return false;
}
}

return true;
}

function process()
{
// Check if all data fields are available
if ($this->sender == null) {
$this->fail("Sender address not set.");
}
if (0 == count($this->recipients)) {
$this->fail("No recipients are set.");
}

// Check if all required fields are set
foreach ($this->required as $r) {
if (empty($_POST[$r]) || trim($_POST[$r]) == "") {
if ($this->errorURL != null) {
header(sprintf("Location: %s", $this->errorURL));
exit(0);
} else {
$this->fail(sprintf("Required field '%s' not set.", $r));
}
}
}

$boundary = md5(uniqid(time()));

$h = array();
$h[] = sprintf("X-Mailer: formmail.php %s at %s", $this->version, $this->getScriptURL());
$h[] = "MIME-Version: 1.0";
$h[] = sprintf("Content-Type: multipart/mixed; boundary=\"%s\"", $boundary);
$h[] = sprintf("From: %s", $this->sender);
for ($i = 1; $i < count($this->recipients); $i++) {
$h[] = sprintf("To: %s", $this->recipients[$i]);
}

$m = "This is a multi-part message in MIME format.\n";
$m .= "\n";
$m .= sprintf("--%s\n", $boundary);
$m .= "Content-Type: text/plain; charset=iso-8859-1\n";
$m .= "\n";
$m .= sprintf("%s\n", $this->intro);
$m .= "\n";

foreach ($_POST as $n => $v) {
$m .= sprintf("%s: %s\n", $n, $v);
}

foreach ($_FILES as $n => $v) {
if (@$fd = fopen($v["tmp_name"], "rb")) {
$m .= sprintf("\n--%s\n", $boundary);
$m .= sprintf("Content-Type: application/octet-stream; name=\"%s\"\n", $v["name"]);
$m .= "Content-Transfer-Encoding: base64\n";
$m .= sprintf("Content-Description: %s\n", $v["name"]);
$m .= sprintf("Content-Disposition: attachment; filename=%s\n\n", $n);

$buf = fread($fd, $v["size"]);
$m .= chunk_split(base64_encode($buf), 76, "\n");
fclose($fd);

unset($buf);
}
}

mail($this->recipients[0],
$this->subject,
$m,
join("\n", $h));


if ($this->followupURL != null) {
header(sprintf("Location: %s", $this->followupURL));
exit(0);
} else {
fail("Thank you for submitting the form.", 0);
}
}
}

function formmail($mailfrom,
$mailto,
$subject = "formmail.php",
$intro = "Your web form was sent:",
$required = "",
$followup = "",
$error = "")
{
if ($_SERVER["REQUEST_METHOD"] != "POST") {
return;
}

$f = new FormMailClass();

$f->setSender($mailfrom);
$f->addRecipient($mailto);
$f->setSubject($subject);
$f->setIntro($intro);
$f->setRequiredFields(explode(",", $required));
$f->setFollowupURL($followup);
$f->setErrorURL($error);
$f->process();
}

?>
X

php Formular: Sender= E-Mail Adresse

jrandi
Beiträge gesamt: 794

20. Sep 2011, 01:52
Beitrag # 2 von 3
Beitrag ID: #480539
Bewertung:
(2399 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hello,

ich möchte Dir empfehlen, Deine Anfrage kurz zu halten.
ich glaube nicht, dass Du eine gute Antwort erhälst, wenn Du 300 Zeilen ins Forum stellst. . .

jedenfalls was mich betrifft : wollte helfen, aber eben. . .
fasse dich kurz. wo ist das problem genau ? was ist konkret ?

weniger ist mehr. php-fehler auf welcher zeile ? usw.
(LINE - DUMP ? )

arbeitest Du mit templates, ModeliXe, Smarty ?
oder ein CMS ? welches ?)
onlineshop ? etc. . .


bis bald
jurg


als Antwort auf: [#480293]

php Formular: Sender= E-Mail Adresse

crisies
  
Beiträge gesamt: 135

21. Sep 2011, 23:04
Beitrag # 3 von 3
Beitrag ID: #480729
Bewertung:
(2346 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
hi,

ich würde mal hier "[email protected]???????" einfach das Feld aus dem Formular einfügen ;)

Also irgendwie so:

formmail($_POST['AbsenderMailFeldName'],
"[email protected]",
"Reservationsanfrage",
" ",
"Name,Vorname,Adresse,Plz_Ort,Telefon,Email",
"http://www.meinedomain.ch/pages/danke.html",
"http://www.meinedomain.ch/pages/fehler.html");

gruss
chris.w.


als Antwort auf: [#480539]

Aktuell

InDesign / Illustrator
axaio_PR_Bild_300x300_10_22

Veranstaltungskalender

Hier können Sie Ihre Anlässe eintragen, welche einen Zusammenhang mit den Angeboten von HilfDirSelbst.ch wie z.B. Adobe InDesign, Photoshop, Illustrator, PDF, Pitstop, Affinity, Marketing, SEO, Büro- und Rechtsthemen etc. haben. Die Einträge werden moderiert freigeschaltet. Dies wird werktags üblicherweise innert 24 Stunden erfolgen.

pdf-icon Hier eine kleine Anleitung hinsichtlich Bedeutung der auszufüllenden Formularfelder.

Veranstaltungen
01.12.2022

Online
Donnerstag, 01. Dez. 2022, 10.00 - 10.45 Uhr

Webinar

Die drei ColorLogic-Programme ZePrA, CoPrA und ColorAnt sind in neuen Versionen mit vielen neuen Funktionen im Jahr 2022 veröffentlich worden oder werden in Kürze veröffentlicht (ColorAnt 9). In unserem ca. 45 minütigen kostenlosen Webinar zeigen wir Ihnen einige dieser neuen Funktionen mit dem Schwerpunkt auf Automatisierung und Produktivitätssteigerungen.

Ja

Organisator: Impressed GmbH

Kontaktinformation: Silvia Noack, E-Mailsnoack AT impressed DOT de

https://www.impressed.de/schulung.php?c=sDetail&sid=311

ColorLogic Update-Webinar ZePrA 10, CoPrA 9 und ColorAnt 9
Veranstaltungen
02.02.2023

Prozesse optimieren und effizient gestalten

Zürich
Donnerstag, 02. Feb. 2023, 08.00 - 10.00 Uhr

Digitalisierung, Webauftritt

Digitalisierung mitgestalten - Worauf kommt es an? Wie wichtig ist die Webseite? Webseite mit Word Press? Interne Prozesse optimieren

Ja

Organisator: B. Isik - SNF Academy

Kontaktinformation: Birol Isik, E-Mailinfo AT bkcc DOT ch

https://digitalisierung-heute.ch/digitalisierung-informationstag-schweiz/