Selbst ein Kontaktformular erstellen

Diskutiere Selbst ein Kontaktformular erstellen im Web & Grafik Forum im Bereich Internet & Telekomunikation Forum; Also als 1. kannst du nicht so etwas machen: $mail = $_POST["nachname"]; $mail = $_POST["vorname"]; $mail = $_POST["str., hausnummer:"]...
  • Selbst ein Kontaktformular erstellen Beitrag #21
B

^bart

Bekanntes Mitglied
Dabei seit
07.11.2006
Beiträge
784
Reaktionspunkte
0
Also als 1. kannst du nicht so etwas machen:

PHP:
$mail = $_POST["nachname"];
$mail = $_POST["vorname"];
$mail = $_POST["str., hausnummer:"];
$mail = $_POST["plz"];
$mail = $_POST["ort"];
$mailname = $_POST["e-mail"];

Du überschreibst die Variable "$mail" immer wieder, sodass eigentlich am Ende nur noch der Ort in dieser gespeichert wäre. Wenn du diese ergänzen möchtest, dann kannst du das mit einem . vor dem =-Zeichen machen, also etwa so .=

Des Weiteren musst du diesen Abschnitt überarbeiten:

PHP:
mail($email_to,$email_betreff,$mailtxt,
     "From: $mail ($mailname)\r\n"
    ."Reply-To: $mail ($mailname)\r\n"
    ."X-Mailer: PHP/" . phpversion());

Die Variablen $email_betreff und $mailtxt existieren nur in deiner Mailfunktion, aber wurden vorher nirgendwo definiert, das heißt ganz einfach, dass die Variablen keinen Inhalt haben und deshalb eine leere Email verschickt wird.

Jetzt bin ich mir leider nicht ganz sicher, ob du die Angaben, also z.B. PLZ, Ort etc. als Text verschicken möchtest oder einen Text, der vorher vom Benutzer eingegeben werden kann, wie das auch in deinem Link aus dem 1. Post ersichtlich ist.

Wenn es das 1. ist, dann musst du statt $mailtxt einfach $mail in die mail-Funktion schreiben, allerdings musst du die Variable $mail vorher "ergänzen" und nicht überschreiben =)

Falls du die andere Methode machen möchtest, also das der Benutzer einen Text eingeben kann, dann brauchst du in der Datei, in der du dein Formular generierst, noch ein Feld für den Text und musst in der mail.php-Datei auf dieses Feld zugreifen, dass kannst du dann z.B. $mailtxt nennen und in deine mail-Funktion einsetzen.

Und!: Wenn du wirklich einen Betreff angeben möchtest, der fix ist, dann musst du in dieser Datei, also in der mail.php noch eine gleichnamige Variable ergänzen und diese mit einem Betreffnamen setzen, z.B.
PHP:
$email_betreff = "Feedback"

oder eben ein Feld im Formular ergänzen, in welches ein Benutzer einen Betreff schreiben kann.

MfG ^bart
 
  • Selbst ein Kontaktformular erstellen Beitrag #22
Caphalor

Caphalor

Bekanntes Mitglied
Dabei seit
27.07.2009
Beiträge
481
Reaktionspunkte
0
Also es sollte so sein das es so erscheint Vorname: Max Also das derjenige etwas eingeben kann und dies auch in der Mail steht
usw. könntest du mir das bitte zusammenstellen? Weil irgendwie versteh ich das ganze hier nicht
 
  • Selbst ein Kontaktformular erstellen Beitrag #23
Caphalor

Caphalor

Bekanntes Mitglied
Dabei seit
27.07.2009
Beiträge
481
Reaktionspunkte
0
So hab das jetz mal so gemacht

PHP:
<?php
error_reporting(E_ALL);
ini_set("display_errors", true);
 
$email_to = "[email protected]";
// Variablen werden aus Formular verwendet
$mail = $_POST["nachname"];
$mail = $_POST["vorname"];
$mail = $_POST["str., hausnummer:"];
$mail = $_POST["plz"];
$mail = $_POST["ort"];
$mailname = $_POST["e-mail"];
// Bestätigungsseite
$okfile = "send.html";
//--------------------------------------------------
echo '$email_to = ' . $email_to . '<br>';
echo '$email_betreff = ' . $email_betreff . '<br>';
echo '$mailtxt = ' . $mailtxt . '<br>';
echo '$mail = ' . $mail . '<br>';
echo '$mailname = ' . $mailname . '<br>';
 
mail($email_to,$email_betreff,$mailtxt,
     "From: $mail ($mailname)\r\n"
    ."Reply-To: $mail ($mailname)\r\n"
    ."X-Mailer: PHP/" . phpversion());
?>


Das bekomm ich raus


HTML:
Notice: Undefined index: Str., Hausnummer in /var/www/ph15s917/html/Bestellformular/mail.php on line 9
$email_to = [email protected]

Notice: Undefined variable: email_betreff in /var/www/ph15s917/html/Bestellformular/mail.php on line 17
$email_betreff = 

Notice: Undefined variable: mailtxt in /var/www/ph15s917/html/Bestellformular/mail.php on line 18
$mailtxt = 
$mail = sd
$mailname = [email protected]

Notice: Undefined variable: email_betreff in /var/www/ph15s917/html/Bestellformular/mail.php on line 22

Notice: Undefined variable: mailtxt in /var/www/ph15s917/html/Bestellformular/mail.php on line 22
 
Zuletzt bearbeitet:
  • Selbst ein Kontaktformular erstellen Beitrag #24
sebhoff

sebhoff

Bekanntes Mitglied
Dabei seit
07.09.2006
Beiträge
5.209
Reaktionspunkte
2
Also es sollte so sein das es so erscheint Vorname: Max Also das derjenige etwas eingeben kann und dies auch in der Mail steht
usw. könntest du mir das bitte zusammenstellen? Weil irgendwie versteh ich das ganze hier nicht

also ich weiß nicht was du da rumdockterst aber ich muss leider sagen du weißt anscheiend nicht was du tust und wie das funktioniert. also hier nochmal das original script zeile für zeile:

PHP:
<?php
//--------------------------------------------------
// Empfänger e-mail
$email_to = "DEINE EMAILADRESSE";
dort sollte deine Mailadresse stehen.

PHP:
// Variablen werden aus Formular verwendet
$mail = $_POST["email"];
$mailname = $_POST["name"];
$email_betreff = $_POST["subject"];
$mailtxt = $_POST["comment"];
Die im Formular eingegebenen Daten (Name, Emailadresse, Betreff und Text) werden ja per post Funktion an dieses Script weitergegeben. D.h. wenn jemand ins Formular den Namen Max Mustermann schreibt mit der EMailadresse [email protected] wäre der Inhalt der Variablen
$mail = "[email protected]" und
$mailname = "Max Mustermann"
Wenn du einen festen Betreff haben willst kannst du auch einfach
PHP:
 $email_betreff = "Dies ist mein Betreff";
verwenden.

PHP:
// Bestätigungsseite
$okfile = "send.html";
wenn gewünscht kann man eine Bestätigungsseite anzeigen lassen. Dafür muss am Ende des Scripts jedoch eine Zeile hinzugefügt und eine andere gelöscht werden.

PHP:
//--------------------------------------------------

mail($email_to,$email_betreff,$mailtxt,
     "From: $mail ($mailname)\r\n"
    ."Reply-To: $mail ($mailname)\r\n"
    ."X-Mailer: PHP/" . phpversion());
mail wird mit oben definierten Daten versendet.

PHP:
echo 'Email versendet';
Ein Text wird ausgegeben. Wenn hier eine Bestätigungsseite erscheinen soll sollte diese Zeile gegen ein
PHP:
insert $okfile;
ersetzt werden.
 
  • Selbst ein Kontaktformular erstellen Beitrag #25
Caphalor

Caphalor

Bekanntes Mitglied
Dabei seit
27.07.2009
Beiträge
481
Reaktionspunkte
0
HTML:
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
  <meta http-equiv="content-type"
 content="text/html;charset=iso-8859-1">
  <meta name="generator" content="Adobe GoLive">
  <title>Quick Mail Msg</title>
</head>
<body style="background-color: rgb(255, 255, 255);">
<br>
<form action="mail.php" method="post">
  <div style="text-align: center;"></div>
  <p class="btextbold"></p>
  <div style="text-align: center;"><strong>Nachname:</strong><br>
  </div>
  <p style="text-align: center;" class="btextbold"><input
 size="40" name="Nachname" value=" " type="text"></p>
  <p class="btextbold"></p>
  <div style="text-align: center;"><strong>Vorname:</strong><br>
  </div>
  <p style="text-align: center;" class="btextbold"><input
 size="40" name="Vorname" value="" type="text"></p>
  <p class="btextbold"></p>
  <div style="text-align: center;"><strong><stra
 ße="" hausnummer="">Stra&szlig;e &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; Hausnummer<br>
  </stra></strong></div>
  <p style="text-align: center;" class="btextbold"><strong><input
 size="40" name="stra&szlig;e Hausnummer" value=""
 style="text-align: center;" class="btextbold" type="text"><input
 size="7" name="Stra&szlig;e Hausnummer" value=""
 type="text"></strong></p>
  <p class="btextbold"></p>
  <div style="text-align: center;"><strong><strong>PLZ:</strong><br>
  </strong></div>
  <p style="text-align: center;" class="btextbold"><strong><input
 size="40" name="PLZ" value="" type="text"></strong></p>
  <p class="btextbold"></p>
  <div style="text-align: center;"><strong><strong>Ort:</strong><br>
  </strong></div>
  <p style="text-align: center;" class="btextbold"><strong><input
 size="40" name="Ort" value="" type="text"></strong></p>
  <p class="btextbold"></p>
  <div style="text-align: center;"><strong><strong>E-Mail:</strong><br>
  </strong></div>
  <p style="text-align: center;" class="btextbold"><strong><input
 size="40" name="E-Mail" value="" type="text"></strong></p>
  <p></p>
  <strong>&nbsp;
  <div align="center">
  <p><input value="senden" name="submit"
 tabindex="5" type="submit">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<input
 name="reset" value="l&ouml;schen" tabindex="6"
 type="reset"></p>
  </div>
  </strong></form>
</body>
</html>
 
Zuletzt bearbeitet:
  • Selbst ein Kontaktformular erstellen Beitrag #26
sebhoff

sebhoff

Bekanntes Mitglied
Dabei seit
07.09.2006
Beiträge
5.209
Reaktionspunkte
2
ach mensch ich hab das doch selbst bei dir auf dem server getestet.

in deiner mail.php steht immernoch "DEINE EMAIL" es sollte dort aber deine EMAILADRESSE stehen "caphalor@wasweißich.de"

Zudem sollte dir natürlich klar sein, dass wenn du dein Formular mit Textfeldern erweiterst, das du diese dann auch wieder von der mail.php aufgreifen musst damit es abgesendet wird.

Wenn du den Quellcode Syntax beider Dateien vergleichend ansiehst wird dir auffallen, dass die Variablen in der php Datei - die "name" Tags der Textfelder sind.

Es ist aber auch unratsam etwas zu probieren wovon man nicht den hauch einer Ahnung hat. ;)
Ich verwiese einfach mal auf SelfHTML und SelfPHP -> gidf
 
  • Selbst ein Kontaktformular erstellen Beitrag #27
Caphalor

Caphalor

Bekanntes Mitglied
Dabei seit
27.07.2009
Beiträge
481
Reaktionspunkte
0
Ne die Email bekomm ich ja schon nur wenn ich eingebe um zu testen bekomm ich ne Komplett lere email
 
  • Selbst ein Kontaktformular erstellen Beitrag #28
sebhoff

sebhoff

Bekanntes Mitglied
Dabei seit
07.09.2006
Beiträge
5.209
Reaktionspunkte
2
Ja das ist klar. Weil das Script nicht weiß welche Daten es nehmen soll da du die falschen Variablen übergibst.

schau, wenn in der HTML ein Textfeld "Vorname" und "Nachname" heißt muss dieses auch in der mail.php bearbeitet werden. Und wenn das Script nur eine Variable "name" erwartet wird es sicherlich nicht von selber darauf kommen das du mit Vorname und Nachname den namen meinst.

Schau dir das original Script an und versuch Zeile für Zeile rauszukriegen wo da die ganzen Daten herkommen.
HTML:
<input type="text" name="name" value="Ihr Name" tabindex="1">
PHP:
$mailname = $_POST["name"];
 
  • Selbst ein Kontaktformular erstellen Beitrag #29
checcos

checcos

Bekanntes Mitglied
Dabei seit
28.08.2006
Beiträge
2.714
Reaktionspunkte
0
Ort
27°09´46.93" N 175°03´38.46" W
Dieses , wie ich finde gelungene Script mit Captcha, kann man sich auf der Seite mit Anleitung kostenlos herunterladen.
 
Thema:

Selbst ein Kontaktformular erstellen

ANGEBOTE & SPONSOREN

https://www.mofapower.de/

Statistik des Forums

Themen
213.180
Beiträge
1.579.173
Mitglieder
55.879
Neuestes Mitglied
stonetreck
Oben