PHP Forum

PHP Forum (http://www.selfphp.de/forum/index.php)
-   PHP Grundlagen (http://www.selfphp.de/forum/forumdisplay.php?f=12)
-   -   Formular an PHP Mailer übergeben (http://www.selfphp.de/forum/showthread.php?t=26016)

Beat 17.06.2017 11:43:36

Formular an PHP Mailer übergeben
 
Hallo und guten Tag,
ich bin ziemlich unbewandert mit PHP...
Hier mein Problem ich habe auf meien Webseite ein Formular das dann per POST an ein das Mail.php übergeben wird, soweit klappt auch alles gut. Das PHP versendet dann die angaben an die angegebene E-Mailadresse. Mein Problem ist, dass in dem PHP-Script die Absenderadresse fix ist, so dass ich die im Formular angegeben E-Mail nicht direkt als Antwortadesse nutzen kann.
Hier das Script:
PHP-Code:

<?php
// ======= Konfiguration:
$mailTo 'Meine@E-Mailadresse.ch';
$mailFrom '"Webformular" <Meine@E-Mailadresse.ch>';
$mailSubject    'Formular von Webseite';
$returnPage 'mail_erfolg.html';
$returnErrorPage 'mail_fehler.html';
$mailText "";
// ======= Text der Mail aus den Formularfeldern erstellen:
// Wenn Daten mit method="post" versendet wurden:
if(isset($_POST)) {
   
// alle Formularfelder der Reihe nach durchgehen:
   
foreach($_POST as $name => $value) {
      
// Wenn der Feldwert aus mehreren Werten besteht:
      // (z.B. <select multiple>)
      
if(is_array($value)) {
          
// "Feldname:" und Zeilenumbruch dem Mailtext hinzufügen
          
$mailText .= $name ":\n";
          
// alle Werte des Feldes abarbeiten
          
foreach($valueArray as $entry) {
             
// Einrückungsleerzeichen, Wert und Zeilenumbruch
             // dem Mailtext hinzufügen
             
$mailText .= "   " $value "\n";
          } 
// ENDE: foreach
      
// ENDE: if
      // Wenn der Feldwert ein einzelner Feldwert ist:
      
else {
          
// "Feldname:", Wert und Zeilenumbruch dem Mailtext hinzufügen
          
$mailText .= $name ": " $value "\n";
      } 
// ENDE: else
   
// ENDE: foreach
// if
// ======= Korrekturen vor dem Mailversand
// Wenn PHP "Magic Quotes" vor Apostrophzeichen einfügt:
 
if(get_magic_quotes_gpc()) {
     
// eventuell eingefügte Backslashes entfernen
     
$mailtext stripslashes($mailtext);
 }
// ======= Mailversand
// Mail versenden und Versanderfolg merken
$mailSent = @mail($mailTo$mailSubject$mailText"From: ".$mailFrom);
// ======= Return-Seite an den Browser senden
// Wenn der Mailversand erfolgreich war:
if($mailSent == TRUE) {
   
// Seite "Formular verarbeitet" senden:
   
header("Location: " $returnPage);
}
// Wenn die Mail nicht versendet werden konnte:
else {
   
// Seite "Fehler aufgetreten" senden:
   
header("Location: " $returnErrorPage);
}
// ======= Ende
exit();
?>

Ich denke es sollte doch möglich sein, den Wert der Variablen: $mailFrom, die zubeginn des Script angelegt wird, in der Abfrage des $_POST zu ändern, so dass sie den Wert der im Formular angegebenen email annimmt. Leider bin ich zu DOOF um das hienzukriegen... :-(
Im Formular heisst das Feld: email

Vielen dank für eure hilfe
Gruss Beat

vt1816 17.06.2017 20:28:28

AW: Formular an PHP Mailer übergeben
 
PHP-Code:

// ======= Mailversand 
// Mail versenden und Versanderfolg merken 
$mailSent = @mail($mailTo$mailSubject$mailText"From: ".$_POST['mail']); 


Beat 18.06.2017 09:54:48

AW: Formular an PHP Mailer übergeben
 
Hallo vt1816,
ich bin ja begeister!! Vielen Dank für Deine rasche Hilfe.
Ich habe das Scipt geändert und das ist exakt das was ich wollte. Dennoch kurz für mein Verständnis, ich kann also die Element aus der POST übergabe direkt ansprechen, mit

PHP-Code:

.$_POST["Formularfeldname"

??

Gruss aus Schweizland
Beat

PS:
Kennst Du ein gutes PHP Lehrbuch, das für ANFÄNGER geeignet ist?

chorn 19.06.2017 07:48:04

AW: Formular an PHP Mailer übergeben
 
https://www.erich-kachel.de/mail-header-injection/
https://github.com/PHPMailer/PHPMailer

Beat 23.06.2017 19:21:40

AW: Formular an PHP Mailer übergeben
 
Hallo Chron,
vielen Dank für Deinen Hienweis bezüglich der Sicherheit beim automatischen einfügen der E-mail Adrese. Du hast sicher recht, dass es ein gewisses Risiko giebt. Ich habe aber im Formular eine gewisse "plausililitäts" Prüfung in der Feldeingabe eingebaut, so dass ich nicht mehrern "@" in diesem Feld erlaube, dies ist sicher kein 100% Sicherheit, aber für meine Bedürfnisse genügend.


Vielen Dank für Dein Votum

Gruss aus Schweizland (33°C) Wetter HEISS (nicht nur die Nächte)...

Beat


Alle Zeitangaben in WEZ +2. Es ist jetzt 22:10:21 Uhr.

Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.