Formular senden auf Homepage will nicht !

der-gott

Vice Admiral Special
Mitglied seit
02.05.2006
Beiträge
763
Renomée
1
Standort
Frankfurt a.M (um die Ecke jedenfalls =)
Habe ein Formular auf einer Seite und würde das gerne per EMail versenden. Nur bekomme ich leider zwar eine EMail gesendet aber die ist leer. Kann mir jemand vielleicht sagen wo der Fehler liegt ... COde sieht wie folgt aus :

DIe HTML Page :

Code:
<html>

<head>
<base target="_self">
</head>

<body link="#FFFFFF" bgcolor="#686868" nosave="" vlink="#000000" alink="#000000" text="#000000">

<form action="mail.php" method="post">  
<a href="meinung_d.htm"><img src="../images/german.gif" border="0" width="23" height="15"></a>&nbsp; 
<a href="meinung_e.htm"><img src="../images/england.gif" border="0" width="24" height="15">
  </a>
  <p align="center"><b><font color="#ffffff" face="Verdana">1) Wie beurteilen
  Sie welche Produkte?</font></b></p>
  <p align="center"><font color="#ffffff" face="Verdana"><select name="Which product" size="1">
    <option selected="selected">Wählen Sie</option>
    <option>Lexikon Loricariidae All L-Numbers</option>
    <option>Lexikon South American Cichlids I</option>
    <option>Lexikon South American Cichlids II</option>
.
.
.
.
.
  

 Haben Sie noch
  weitere Bemerkungen?</font></b></p>
  <p align="center"><font face="Verdana"><textarea name="remarks" cols="50" rows="5"></textarea></font></p>
  <p align="center"><b><font color="#FFFFFF" size="3" face="Verdana">10:)
  Persönliche Angaben (Name, Nachname und Email)</font></b></p>
  <p align="center"><font face="Verdana"><textarea name="pdetails" cols="50" rows="5"></textarea></font></p>
                <p align="center">&nbsp;</p>

<p align="center">
<input type="submit" name="submit" value="Absenden" onClick="submit">

</body>
</html>

Die PHP Geschichte :
Code:
<?php
$to="DEINE@MAIL.ADDY";
mail($to, $sub, $mes, "From: ".$fr)or print"da gabz nen Fehler";
?>
 
Nun, Du mußt schon die Felder auch richtig auslesen, d.h. mit name="eingabefeld" definierst Du es, mit method="post" wird es an das PHP-Skript geschickt, dort kannst Du es dann mit $_POST['eingabefeld'] auslesen (z.B. $mes=$_POST['eingabefeld'];). Aber wenn z.B. $mes gar nicht benutzt wird, bleibt die Stelle bestenfalls leer oder es gibt sogar einen Fehler.

Übrigens würde ich im FORM-Tag auch enctype="text/plain" angeben, sonst könnte die e-Mail hinterher etwas komisch aussehen.

Du mußt auch darauf achten, welche Art von Daten benötigt werden und dann die Eingabe daraufhin überprüfen, also wenn Du z.B. als Absenderadresse überprüfst, ob ein @-Zeichen und ein Punkt drin vorkommen, ist die Wahrscheinlichkeit relativ hoch, daß es eine brauchbare Mailadresse ist und kein Müll. Bis auf den Textblock, der die frei formulierten Ergüsse Deiner Leser enthält, würde ich z.B. auch eher ein einzeiliges input type="text" benutzen.
 
ahsoo ...
also müsste ich um zB
Code:
  weitere Bemerkungen?</font></b></p>
  <p align="center"><font face="Verdana"><[B]textarea name="remarks"[/B] cols="50" rows="5"></textarea></font></p>
  <p align="center"><b><font color="#FFFFFF" size="3" face="Verdana">10:)
  Persönliche Angaben (Name, Nachname und Email)</font></b></p>
  <p align="center"><font face="Verdana"><[B]textarea name="pdetails[/B]" cols="50" rows="5"></textarea></font></p>
                <p align="center">&nbsp;</p>

mit der Email zu verschicken das PHP File so ändern:
Code:
<?php
$to="DEINE@MAIL.ADDY";
mail([B]$remarks, $pdeatils[/B], "From: ".$fr)or print"da gabz nen Fehler";
?>

sehe ich das richtig ... oder ist das nicht ganz so einfach ?
 
Noch nicht ganz. Erstens sind das noch keine verfügbaren PHP-Variablen, sondern werden durch das Formular-Abschicken in das Array $_POST gespeichert. Also mußt Du sie wie bereits geschrieben mit $_POST['variablenname'] auslesen.

Zweitens mußt Du Dich an die Definition der Funktion mail() halten. Die erwartet als erstes die Empfängeradresse, als zweites die Betreffzeile und als drittes die eigentliche Nachricht, weitere Angaben sind optional.

Also sollte das dann so etwa aussehen:
HTML:
...
Bitte geben sie Ihre e-Mail-Adresse an: <input type="text" name="absender" />
Nun tippen Sie bitte Ihre Nachricht: <textarea name="nachricht"></textarea>
...
PHP:
<?php

if(empty($_POST['absender']) || empty($_POST['nachricht'])) {
  echo "Sie haben nicht alle Felder ausgefüllt!";
}

$to = "der-gott@internet.de";
$sub = "feedback-email von meiner webseite";
$mes = $_POST['nachricht'];
$fr = $_POST['absender'];

mail($to, $sub, $mes, "Von: ".$fr);
?>
Hier noch zwei Links, deren Lektüre einiges vereinfachen kann ;)
http://de.selfhtml.org/html/formulare/index.htm
http://www.php.net/manual/de/tutorial.forms.php
 
Zuletzt bearbeitet:
Zurück
Oben Unten