Autor |
Nachricht |
ScanLide
Threadersteller
Dabei seit: 12.04.2007
Ort: -
Alter: 40
Geschlecht:
|
Verfasst Do 12.04.2007 05:00
Titel Dreamweaver wie Formular versenden? |
|
|
Hi,
ich habe mit Dreamweaver ein Formular erstellt und habe das Problem das ich dieses nicht versenden kann. Es klappt zwar mit diesem hier:
Code: | <?php
$admin= 'meine
@e-mail.de';
$subject= 'ScanLide';
$subject2= 'ScanLide';
$message= 'Nachrichten an '.$admin.' von '.$Mail.":\n\n";
foreach($HTTP_POST_VARS as $name=> $value) {
$message.= "$name:$value\n";
}
mail($admin, $subject, $message, "From: $Mail");
mail($Mail, $subject2, $message, "From: $admin");
header('Location: http://'.getenv('HTTP_HOST').'/danke.html');
?> |
jedoch denke ich mal das ist irgendwie komplett falsch. Habe diesen Script hochgeladen als mail.php dann habe ich ein Formuluar erstellt und bei Aktion dann mail.php ausgewählt, das hat wie gesagt auch geklappt. Da ich mir aber sehr unsicher war ob das den so richtig ist habe ich ein paar Stunden im Internet gesucht und habe dann auch noch folgenden Script ausprobiert:
Code: | <?
//Klasse einbinden
require('phpmailer/class.phpmailer.php');
//Instanz von PHPMailer bilden
$mail = new PHPMailer();
//Absenderadresse der Email setzen
$mail->From = "meine
@e-mail.de";
//Name des Abenders setzen
$mail->FromName = "ScanLide";
//Empfängeradresse setzen
$mail->AddAddress("meine
@e-mail.de");
//Betreff der Email setzen
$mail->Subject = "Die erste Mail";
//Text der EMail setzen
$mail->Body = "Hallo! \n\n Dies ist die erste Email mit PHPMailer!";
//EMail senden und überprüfen ob sie versandt wurde
if(!$mail->Send())
{
//$mail->Send() liefert FALSE zurück: Es ist ein Fehler aufgetreten
echo "Die Email konnte nicht gesendet werden";
echo "Fehler: " . $mail->ErrorInfo;
}
else
{
//$mail->Send() liefert TRUE zurück: Die Email ist unterwegs
echo "Die Email wurde versandt.";
}
?> |
Habe wieder ein Formular erstellt und bei Aktion phpmailer/class.phpmailer.php ausgewählt das Senden hat auch dort funktioniert nur habe ich nicht die Daten des Formular erhalten sondern einfach das was schon im Script steht.
/Hallo! Dies ist die erste Email mit PHPMailer!/
Es wäre sehr nett wenn mir jemand erklären könnte wie ich ein Formular versenden kann? Mit mailto: klappt es zwar auch aber das finde ich nicht so rossig. Wenn möglich soll der Nutzer auch sehen das seine Daten abgeschickt wurden.
lg lukas
Zuletzt bearbeitet von ScanLide am Do 12.04.2007 05:00, insgesamt 1-mal bearbeitet
|
|
|
|
|
airball
Dabei seit: 28.08.2002
Ort: 2850
Alter: 38
Geschlecht:
|
Verfasst Do 12.04.2007 08:00
Titel
|
|
|
Das ist ja bis jetzt nur das PHP-Script welches die Anweisungen gibt,
aber wo ist denn die Datei mit den Formularfeldern? Irgendwo muss
man ja auch was eingeben und die Daten absenden...
Guck dir sonst mal via Google oder Hotscripts ein paar kostenlose
Formmailer an, vielleicht lernst du dabei was oder aber du benutzt
so einen und veränderst ihn dann nach deinen Wünschen.
Edith: Zeig mal dein Formular aus Dreamweaver...
...haben die abzuschickenden Felder die gleichen
Bezeichnungen wie die Variablen im Script?
Was den PHP-Code allgemein angeht, kann ich dir leider
nicht so gut helfen, bin nicht versiert in PHP.
Zuletzt bearbeitet von airball am Do 12.04.2007 08:01, insgesamt 1-mal bearbeitet
|
|
|
|
|
Anzeige
|
|
|
ScanLide
Threadersteller
Dabei seit: 12.04.2007
Ort: -
Alter: 40
Geschlecht:
|
Verfasst Do 12.04.2007 14:06
Titel
|
|
|
Hi,
habe mir schon eine Menge Fornmailer angeschaut was ich dabei nicht verstehe ist die Sache mit den Variablen. Ich habe hier im Forum folgenden Script ausprobiert.
Code: | <?
$message="Name:".$Name."<br> E-Mail:".$Email."<br> Nachricht:".$Nachricht;
mail("EMAIL@ADRESSE.com","EMAIL_TITEL",$message);
?> |
Das Formular schaut so aus.
Code: | <form id="form2" name="form2" method="post" action="testmail.php">
<label>
Name:
<input name="Name" type="text" id="Name" size="20" />
</label>
E-Mail:
<label>
<input name="Email" type="text" id="Email" size="20" />
</label>
Nachricht:
<label>
<textarea name="Nachricht" id="Nachricht"></textarea>
</label>
<label>
<input type="submit" name="Submit3" value="Senden" />
</label>
</form> |
Die E-Mail welche ich erhalte wenn ich das Formular ausgefüllt und abgeschickt habe schaut so aus.
Name:ScanLide<br>E-Mail:ScanLide@meine.de<br>Nachricht:Heut ist schönes Wetter
Das kann doch nicht so richtig sein, oder?
lg lukas
Zuletzt bearbeitet von ScanLide am Do 12.04.2007 16:26, insgesamt 1-mal bearbeitet
|
|
|
|
|
airball
Dabei seit: 28.08.2002
Ort: 2850
Alter: 38
Geschlecht:
|
Verfasst Do 12.04.2007 17:34
Titel
|
|
|
Na richtig isset soweit, nur das er die HTML-Zeichen
halt nicht als HTML interpretiert. Da müsstest jetzt
aber mal jemanden fragen der sich wirklich damit
auskennt, da hab ich nun nicht so den Plan von.
Hab mich auch ehrlich gesagt nie wirklich für
PHP interessiert.
|
|
|
|
|
ScanLide
Threadersteller
Dabei seit: 12.04.2007
Ort: -
Alter: 40
Geschlecht:
|
|
|
|
|
airball
Dabei seit: 28.08.2002
Ort: 2850
Alter: 38
Geschlecht:
|
Verfasst Do 12.04.2007 21:35
Titel
|
|
|
mmh..
an SelfHTML hab ich nun
grad mal überhaupt nicht
gedacht bei dem Thema.
|
|
|
|
|
rob
Dabei seit: 11.12.2003
Ort: ~/
Alter: 46
Geschlecht:
|
Verfasst Sa 14.04.2007 03:36
Titel
|
|
|
Zitat: | Na richtig isset soweit, nur das er die HTML-Zeichen
halt nicht als HTML interpretiert. |
Ja, die Mail wird als text/plain verschickt, weil man dem Script nicht mitteilt, daß es sich um eine HTML-Mail handeln soll.
Dazu kann man der mail()-Funktion noch zusätzliche Header mitgeben, was man auch in jedem Fall machen sollte, damit auch der richtige Zeichensatz genommen wird und Sonderzeichen/Umlaute korrekt angezeigt werden.
Code: | $headers = "From: $absender\r\n";
$headers.= "Reply-To: $absender\r\n";
$headers.= "MIME-Version: 1.0\r\n";
$headers.= "Content-type: text/plain; charset=UTF-8\r\n";
$headers.= "X-Mailer: PHP/" . phpversion(); |
Und außerdem verwendet das Script noch die alten Arrays, die bei vielen Hostern bereits nicht mehr nutzbar sind. Das ganze ist, wenn es irgendwo noch funktioniert, nur aus Gründen der Rückwärtskompatibilität eingeschaltet.
Statt $HTTP_POST_VARS sollte in jedem Fall $_POST verwendet werden.
Und das hier ist auch nicht besonders schön:
Code: | header('Location: http://'.getenv('HTTP_HOST').'/danke.html'); |
Hinter jeder Weiterleitung mit header('Location:'); sollte ein exit; folgen.
Es könnte sein, daß ein Browser diesem Redirect nicht folgt. Deswegen sollte das Script beendet werden, damit nicht eventuell nachfolgender Code ausgeführt wird.
|
|
|
|
|
|
|
|
Ähnliche Themen |
PDF-Formular direkt versenden...
Daten aus Formular versenden
Formular versenden - mit und ohne PHP
Acrobat Formular teilweise versenden
onClick Event und versenden per Formular
[PHP] HTML-Formular einfach versenden
|
|