PHP Problem mit Formular

Xedo

Lt. Commander
Registriert
Jan. 2008
Beiträge
1.235
Hey Leute

Ich möchte ein Formular programmieren und habe folgende Vorlage:

Das Formular:

Code:
<html>

<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<title>kontaktformular</title>
</head>

<body>
<p>&nbsp;</p>
<table border="0" cellpadding="1" cellspacing="2">
<form action="kontaktformular-auswerten.php" method="post">
<tr>
  <td>Name:</td>
  <td><input name="Name" size="49" type="text"></td>
</tr>
<tr>
  <td>eMail:</td>
  <td><input name="Email" size="49" type="text"></td>
</tr>
<tr>
  <td>Tel.:</td>
  <td><input name="Tel" size="49" type="text"></td>
</tr>
<tr>
  <td>Betreff:</td>
  <td><select name="Betreff" size="1"><option>Fragen</option>
<option>Angebot</option><option>Sonstiges</option></select></td>
</tr>
<tr>
<td>Betreff2:</td>
  <td><select name="Betreff" size="1"><option>Fragen</option>
<option>Angebot</option><option>Sonstiges</option></select></td>
</tr>
<tr>

  <td>Nachricht:</td>
  <td><textarea cols="48" name="Nachricht" rows="16"></textarea></td>
</tr>
<tr>
  <td>Wünsche Antwort:</td>
  <td>Ja <input name="Antwort" checked type="radio" value="ja">    Nein <input name="Antwort" type="radio" value="nein"></td>
</tr>
<tr>
  <td align="center" colspan="2"><input name="Send" type="submit" value="Abschicken">    <input name="Reset" type="reset" value="Löschen"></td>
</tr>
</form>
</table>
</body>

</body>

</html>

Hier wird es ausgewertet:

Code:
<html>
<head>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<title>Formular auswerten</title>
<!--mstheme--><link rel="stylesheet" type="text/css" href="../../_themes/marc-design/marc1011.css"><meta name="Microsoft Theme" content="marc-design 1011, default">
</head>

</head>
<body>
<br>
<br>
<?php

$Empfaenger = "xxxxxx.de";

if($_REQUEST['Send'])
{
   if(empty($_REQUEST['Name']) || empty($_REQUEST['Email']) || empty($_REQUEST['Tel']) || empty($_REQUEST['Nachricht']))
   {
      echo"Bitte gehen Sie <a href=\"javascript:history.back();\">zurück</a> und füllen Sie alle Felder aus!";
   }
   else
   {
      $Mailnachricht = "Sie haben folgende Nachricht erhalten: \n\n";
      while(list($Formularfeld, $Wert)=each($_REQUEST))
      {
         if($Formularfeld!="Send")
         {
            $Mailnachricht .= $Formularfeld.": ".$Wert."\n";
         }
      }
      $Mailnachricht .= "\nDatum/Zeit: ";
      $Mailnachricht .= date("d.m.Y H:i:s");
      $Mailbetreff = "Kontakt: ";
      $Mailbetreff .= $_REQUEST['Betreff'];
      mail($Empfaenger, $Mailbetreff, $Mailnachricht, "From: ".$_REQUEST['Email']);
      echo"Vielen Dank für Ihre eMail!";
   }
}
else
{
   echo"Ein Fehler ist aufgetreten. Bitte gehen Sie auf diese <a href=\"kontaktformular.php\">Seite</a>.";
}

?>
</body>
</html>


Wie bekomme ich es hin, dass das "Betreff2" Dropdown auch in der email versendet/ausgewertet wird?

Vielen Dank!
Ergänzung ()

hat sichgelöst danke, manchmal sieht man den wald vor lauter bäumen nicht!
 
Schön dass sich dein Problem noch gelöst hat, aber was ist mit dem Sicherheitsaspekt?

- Es fehlt jeglicher Schutz vor Email Injection
- Du solltest nicht $_REQUEST benutzen, denn dann kannst du dir das Zeug auch über $_GET reinholen, was du wirklich nicht willst. Benutze $_POST!
 
Zurück
Oben