Kontaktformular funktioniert nicht

Alt 04.12.2012, 09:51   # 1
Romina
 
Registriert seit: 04.12.2012
Beiträge: 2
ich muss für eine Webseite ein Kontaktformular erstellen. Da mailto: nicht sehr sicher ist habe ich mich für php entschieden. Leider funktioniert das absenden nicht. Ich wäre dankbar wenn ihr mir helfen könntet.

Hier mein code:
  Spoiler:
PHP-Code:
<body>
 <?php
 
if(!empty($_post['Kontaktformular']) && !empty($_post['Kontaktformular'])) {
   
$email htmlspecialchars("$_post[email]");
   @
mail("xxx@xxx.xx""Feedback"$_post['Kontaktformular'], "From: $Kontaktformular");
 }
 
?>
<div align="center">
<br><br>

<form action="Kontaktformular.php" method="post">
<table border="0" cellspacing="0" cellpadding="5">
  <tr>
    <td width="149">Vorname:</td>
    <td width="197"><form id="form4" name="form4" method="post" action="">
      <input name="vorname" type="text" id="vorname" size="25" maxlength="25" />
    </form></td>
  </tr>
  <tr>
    <td>Nachname:</td>
    <td><form id="form5" name="form5" method="post" action="">
      <input name="nachname" type="text" id="nachname" size="25" maxlength="25" />
    </form></td>
  </tr>
  <tr>
    <td>Straße:</td>
    <td><form id="form6" name="form6" method="post" action="">
      <input name="Straße" type="text" id="Straße" size="25" maxlength="25" />
    </form></td>
  </tr>
  <tr>
    <td height="25">PLZ/Ort:</td>
    <td><form id="form9" name="form9" method="post" action="">
      <input name="plz" type="text" id="plz" size="6" maxlength="6" />
      <input name="ort" type="text" id="ort" size="18" maxlength="18" />
    </form></td>
  </tr>
  <tr>
    <td>Telefon:</td>
    <td><form id="form7" name="form7" method="post" action="">
      <input name="telefon" type="text" id="telefon" size="25" maxlength="25" />
    </form></td>
  </tr>
  <tr>
    <td>Email:</td>
    <td><form id="form8" name="form8" method="post" action="">
      <input name="email" type="text" id="email" value="" size="25" maxlength="25" />
    </form></td>
  </tr>
  <tr>
    <td>Ich interessiere mich für:</td>
    <td><form id="form10" name="form10" method="post" action="">
      <input type="checkbox" name="einbaugeräte" id="einbaugeräte" />
    Einbaugeräte<br />
    <input type="checkbox" name="standgeräte" id="standgeräte" />
    Standgeräte<br />
    <input type="checkbox" name="küchen" id="küchen" />
    Küchen<br />
    <input type="checkbox" name="spülen" id="spülen" />
    Spülen<br />
    <input type="checkbox" name="essgruppen" id="essgruppen" />
    Essgruppen<br />
    <input type="checkbox" name="bettsysteme" id="bettsysteme" />
    Bettsysteme
</form></td>
  </tr>
  <tr>
    <td>Anmerkungen:</td>
    <td><form id="form3" name="form3" method="post" action="">
      <textarea name="anmerkungen" id="anmerkungen" cols="30" rows="5"></textarea>
    </form></td>
  </tr>

<tr>
<td valign="top">Deine Nachricht:</td>
<td><textarea name="nachricht" cols="50" rows="5" class="feld"></textarea></td>
</tr>
<tr>
<td> </td>
<td align="left"><input type="reset" value="zurücksetzen" class="Kontaktformular.php"> <input type="submit" value="abschicken" name="submit" class="Kontaktformular.php"></td>

</tr>
</table>
</form>


</div>
</body>
</html>
  Mit Zitat antworten
Alt 04.12.2012, 09:51 # --
netzwelt.de
 
Benutzerbild von netzwelt.de
 
 
 
   
Alt 04.12.2012, 11:21   # 2
FreewareGuide
Moderator
 
Benutzerbild von FreewareGuide
 
Registriert seit: 31.10.2002
Ort: Oldenburg
Beiträge: 5.729
Hallo,

Du hast gründlich was falsch verstanden mit Variablen-Namen und Namen der PHP-Seite. Wenn Du das Formular abschickst, werden die Inhalte der Eingabefelder im FORM an die als „action“ definierte PHP-Seite geschickt. Du hast danach also Werte wie „vorname“, „nachname“, „plz“, „ort“ oder „Straße“ (was ganz ungeschickt ist mit dem „ß“, auch auf Großschreibung solltest Du verzichten, nenne es einfach „strasse“). Und damit kannst Du dann am Anfang auf z.B. $_post['email'] prüfen (weil Du ja bestimmt willst, dass mindestens das auf jeden Fall ausgefüllt wird).

Darüber hinaus hast Du nur ein FORM, mehrere ineinander geschaltete FORM sind nicht zulässig und auch sinnlos. Ein gesamtes Formular wird ausgefüllt und abgeschickt. D.h. die ganzen FORM mit „form4“, „form5“ usw. musst Du ersatzlos streichen. Nur das erste („action="Kontaktformular.php"“) bleibt.

Soviel soweit zu den gröbsten Schnitzern. Kommst du schon weiter?

Grüße,
Thorsten
__________________
Wieder da: FreewareGuide.de
...bin letztens durch die Aufnahmeprüfung zur Hellseherschule gekracht! smiley crystal ball
  Mit Zitat antworten
Alt 04.12.2012, 12:05   # 3
FreewareGuide
Moderator
 
Benutzerbild von FreewareGuide
 
Registriert seit: 31.10.2002
Ort: Oldenburg
Beiträge: 5.729
Ach ja, beim „@mail“ musst du natürlich auch mehr Aufwand betreiben, den Inhalt zu formuloieren, da musst vDu die veinzelnen Felder zusammen setzen, auch da funktioniert ein „$_post['Kontaktformular']“ nicht.
  Mit Zitat antworten
Alt 04.12.2012, 21:08   # 4
Romina
Threadstarter
 
Registriert seit: 04.12.2012
Beiträge: 2
Hallo! Vielen Dank für die schnelle Antwort. Ich habe mit PHP noch keine Erfahrungen gemacht was man merken wird
Ich habe jetzt alles klein geschrieben und auch die form4,form5 etc herausgelöscht.
Bei dem PHP Code am Anfang habe ich einen neuen eingefügt, da mir der leichter erschien. Leider funktioniert es jedoch noch immer nicht. Ich wäre um weitere Hilfe sehr dankbar.
Hier wieder mein Code:

PHP-Code:
<?

$recipient 
"xxx@xxx.xx";

$success "erfolg.html";
$fail "fehler.html";

$subject "Kontaktformular".$SERVER_NAME;
$body "Nachricht von ".$SERVER_NAME." am ".date("d.m.Y - H:i:s")."\n";
$body .= "Sender IP: ".$_SERVER['REMOTE_ADDR']."\n\n"
while(list(
$var$val) = each($HTTP_POST_VARS)) {
$body .= "$var:\n";
for(
$i=0;$i<strlen($var)+1;$i++) {
$body .= "-";
}
$body .= "\n$val\n\n";
}
if(@
mail($recipient$subject$body$header)) {
header("Location: $success");
} else {
header("Location: $fail");
}
?>
<div align="center">
<br><br>
<form name="Kontaktformular" method="post" action="formmailer.php">

<table border="0" cellspacing="0" cellpadding="5">
  <tr>
    <td width="149">vorname:</td>
    <td width="197"><form method="post" action="">
      <input name="vorname" type="text" id="vorname" size="25" maxlength="25" />
    </form></td>
  </tr>
  <tr>
    <td>nachname:</td>
    <td><form method="post" action="">
      <input name="nachname" type="text" id="nachname" size="25" maxlength="25" />
    </form></td>
  </tr>
  <tr>
    <td>strasse:</td>
    <td><form method="post" action="">
      <input name="Straße" type="text" id="Straße" size="25" maxlength="25" />
    </form></td>
  </tr>
  <tr>
    <td height="25">plz/ort:</td>
    <td><form method="post" action="">
      <input name="plz" type="text" id="plz" size="6" maxlength="6" />
      <input name="ort" type="text" id="ort" size="18" maxlength="18" />
    </form></td>
  </tr>
  <tr>
    <td>telefon:</td>
    <td><form method="post" action="">
      <input name="telefon" type="text" id="telefon" size="25" maxlength="25" />
    </form></td>
  </tr>
  <tr>
    <td>email:</td>
    <td><form method="post" action="">
      <input name="email" type="text" id="email" value="" size="25" maxlength="25" />
    </form></td>
  </tr>
  <tr>
    <td>ich interessiere mich für:</td>
    <td><form method="post" action="">
      <input type="checkbox" name="einbaugeräte" id="einbaugeräte" />
    einbaugeräte<br />
    <input type="checkbox" name="standgeräte" id="standgeräte" />
    standgeräte<br />
    <input type="checkbox" name="küchen" id="küchen" />
    küchen<br />
    <input type="checkbox" name="spülen" id="spülen" />
    spülen<br />
    <input type="checkbox" name="essgruppen" id="essgruppen" />
    essgruppen<br />
    <input type="checkbox" name="bettsysteme" id="bettsysteme" />
    bettsysteme
</form></td>
  </tr>
  <tr>
    <td>anmerkungen:</td>
    <td><form method="post" action="">
      <textarea name="anmerkungen" id="anmerkungen" cols="30" rows="5"></textarea>
    </form></td>
  </tr>

<tr>
<td valign="top">deine Nachricht:</td>
<td><textarea name="nachricht" cols="50" rows="5" class="feld"></textarea></td>
</tr>
<tr>
<td> </td>
<td align="left"><input type="reset" value="zurücksetzen" class="Kontaktformular.php"> <input type="submit" value="abschicken" name="submit" class="Kontaktformular.php"></td>

</tr>
</table>
</form>
</div>
lg romina
  Mit Zitat antworten
Alt 05.12.2012, 14:50   # 5
FreewareGuide
Moderator
 
Benutzerbild von FreewareGuide
 
Registriert seit: 31.10.2002
Ort: Oldenburg
Beiträge: 5.729
Geht "funktioniert nicht" noch etwas genauer? Wo hast Du Deine Code-Teile denn her, Du hast sie wohl wahrscheinlich nicht selbst geschrieben...

Grüße,
Thorsten
  Mit Zitat antworten

Alt 17.04.2014, 19:13 # --
News Flash
 
Benutzerbild von News Flash
 
 
 
   
Alt 17.04.2014, 19:13 # --
netzwelt.de
 
Benutzerbild von netzwelt.de
 
 
 
   
Antwort
Themen-Optionen



Alle Zeitangaben in WEZ +1. Es ist jetzt 18:13 Uhr.