Webdesign in Siegen

Formulardaten als E-Mail verschicken

Fragen zum Thema PHP können hier gestellt werden

Moderator: Basti

Formulardaten als E-Mail verschicken

Beitragvon Summernoon am 12.12.2007, 15:35

Hallo,
ich möchte meine Formulardaten als E-Mail verschicken, leider habe ich gehört das eine der besten Methoden ,zum verschicken von E-Mail's, PHP ist.

Da ich davon leider keine Ahnung habe hoffe ich, dass ihr mir helfen könnt.

Mein Beispiel Formular:
Code: Alles auswählen
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
  <head>
    <title>New Document</title>
    <meta http-equiv="content-type" content="text/html; charset=iso-8859-1" />
  </head>
  <body>
    <form action="????" method="post">
    <p>Benutzername:
    <input type="text" name="benutzer" size="10" maxlength="8" />
    </p>
    <p>Passwort:
    <input type="password" name="password" size="10" maxlength="8" />
    </p>
    <p>Ort:
    <input type="text" name="ort" size="10" maxlength="8" />
    </p>
    </form>
   
   
   
  </body>
</html>


Was muss man hier einsetzen ?
Code: Alles auswählen
    <form action="????" method="post">


mfg
Summernoon
Summernoon
Mitglied
 
Beiträge: 157
Registriert: 06.11.2007

Re: Formulardaten als E-Mail verschicken

Beitragvon Basti am 12.12.2007, 16:19

Ja, PHP ist da schon die richtige Wahl, aber ganz so "einfach", dass man für die action-Angabe eine Email-Adresse oder so angeben kann, ist es leider nicht ;)

Wenn du das Formular abschickst, muss PHP ersteinmal die Daten verarbeiten und anschließend kann dann mit der mail()-Funktion die Email mit den entsprechenden Daten verschickt werden.

Hier mal ein einfaches Beispiel, was die Email dann mit den Formulardaten verschicken würde:

Code: Alles auswählen
<form action="email_verschicken.php" method="post">
    <p>Benutzername:
    <input type="text" name="benutzer" size="10" maxlength="8" />
    </p>
    <p>Passwort:
    <input type="password" name="password" size="10" maxlength="8" />
    </p>
    <p>Ort:
    <input type="text" name="ort" size="10" maxlength="8" />
    </p>
    <p>
    <input type="submit" name="send_email" value="Email verschicken" />
    </p>
</form>


nun erstellst du eine Datei, die genauso heißt, wie bei action="" angegeben, also bei meinem Beispiel jetzt "email_verschicken.php":
Code: Alles auswählen
<?php

if(isset($_POST['send_email']))  // Prüfen ob Formular abgeschickt wurde
{
  $benutzername = $_POST['benutzername'];
  $passwort = $_POST['password'];
  $ort = $_POST['ort'];

  # Email erstellen
  $betreff = 'Benutzerdaten schicken'; // Der Betreff der Email
  $empfaenger = 'name@domain.tld';         // Email des Empfängers
  $header = "From: name@domain.tld\n";  // Email des Absenders (kann auch deine eigene Email sein)
  $header .= "Reply-To: name@domain.tld";
  $body = "Folgende Daten wurden verschickt:\n\n";
  $body .= "Benutzername: $benutzername\n";
  $body .= "Passwort: $passwort\n";
  $body .= "Ort: $ort\n";
  # Email verschicken
  mail($empfaenger,$betreff,$body,$header);
  echo 'Die Email wurde erfolgreich verschickt!';
}
else {
  echo 'Bitte das Formular zum Verschicken von Emails benutzen!';
}
?>


Ich habe das ganze zwar jetzt nicht ausprobiert, aber eigentlich sollte es klappen und wenn du die nötigen Daten angepasst hast bekommst du dann eine Email mit den Daten des Formulars.
Für die zweite Seite benötigst du natürlich eine PHP Unterstützung auf deinem Server und die Seite kannst du dann auch noch mit ein wenig HTML drumrum verschönern ;)
Benutzeravatar
Basti
Moderator
 
Beiträge: 1889
Registriert: 15.06.2006
Wohnort: Rheinbreitbach

Re: Formulardaten als E-Mail verschicken

Beitragvon Avedo am 12.12.2007, 16:29

Morgen Summernoon.
Es gibt verschiedene Möglichkeiten Mails via PHP zu versenden. Da wäre zum einen die mail()-Funktion. Du übergibst mit deinem Formular die Daten, die mit der Mail verschickt werden sollen, an eine Datei, die die Daten zusammenfügt und sie dann verschickt. Die Datei, an die die Daten gesendet werden sollen, gibst du in deinem Formular im <form>-Tag für das Attribut action an. Du kannst natürlich auch die selbe Datei angeben, wie die, die das Formular enthält.
Für einen Einstieg in PHP empfehle ich dir folgende Seite: http://www.schattenbaum.net/php/mail.php
Dort wird dir auch erklärt, wie du eine einfache Mail via PHP verschickt.
Hier gibt es zu diesem Thema auch ein konkretes Beispiel: http://aktuell.de.selfhtml.org/artikel/php/form-mail/
Wenn du Fragen zu PHP oder ähnlichen Funktionen haben solltest, empfehle ich dir, dir die Seite http://de.php.net anzusehen. Zu deinem Thema wäre das http://de.php.net/mail. Ich hätte dir auch gerne einen eigenen Entwurf geschrieben, jedoch leide ich im moment aufgrund meines Abiturs unter kronischem Zeitmangel. Wenn du noch zwei drei Tage warten kannst, stell ich dir hier gerne noch etwas rein. Ich muss dir leider aber auch sagen, dass die mail()-Funktion, wie auch alle anderen umsetzungen der Transfere Protocolle in PHP-Funktionen, nicht immer perfekt funktioniert. Besser wäre die direkte Anwendung des Protocolls. Dies nennt sich Simple Mail Transfere Protocoll (SMTP). Das würde via fsockopen()-Funktion umgesetzt. Das dürfte allerdings deine Fähigkeiten bei weitem überschreiten. Daher kann ich dir, wenn du nicht auf etwas eigenes bestehst und etwas profesionelleres willst den PHP-Mailer empfehlen.
Hier der Link: http://phpmailer.codeworxtech.com/
MfG, Andy
Ich bin zu Mimis Religion konvertiert!
I'm so tired of slitting the throats of people calling me a violent psychopath.
Benutzeravatar
Avedo
Mitglied
 
Beiträge: 553
Registriert: 09.12.2007
Wohnort: Göttingen

Re: Formulardaten als E-Mail verschicken

Beitragvon Summernoon am 12.12.2007, 18:53

Also die Nachricht das die Email verschickt worden ist kommt nicht auf der Seite auf die man weitergeleitet wird.
Habe jede adresse durch meine email ersetzt!

mfg
Summernoon
Summernoon
Mitglied
 
Beiträge: 157
Registriert: 06.11.2007

Re: Formulardaten als E-Mail verschicken

Beitragvon Basti am 12.12.2007, 19:10

Bekommst du denn sonst irgendeine Fehlermeldung? Und hast du auch wirklich vorher das Formular abgeschickt und die Datei liegt auf einem Server mit PHP Unterstützung?

Was auch sein könnte, ist dass du register_globals auf dem Server auf on stehen hast, was aber besser nicht gemacht werden sollte. Zum Testen könntest du dann aber trotzdem alle Stellen wo $_POST steht durch ein $_REQUEST ersetzen.
Benutzeravatar
Basti
Moderator
 
Beiträge: 1889
Registriert: 15.06.2006
Wohnort: Rheinbreitbach


Zurück zu PHP

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast