Zur Navigation

Kontaktformular sendet die Daten nicht

1 User 1753 (Ex-Mitglied)

Hallo Forum,

ich habe Euch auf der Suche nach einer Lösung für mein Problem gefunden und hoffe dass mir jemand auf die Sprünge helfen kann.

Ich betreibe mehrere Internetseiten und auf allen gibt es ein Kontakformular. Zwei Seiten sind in html aufgesetzt, eine Unterseite mit dem Kontaktformular als php. Funktioniert alles einwandfrei.

Jetzt habe ich eine Seite umgestaltet und vereinfacht, das Kontaktformular ist jetzt Teil der Startseite. Es wird auch angezeigt und nach Absenden der Daten landet man beim gesetzten Formularanker, nur die Mail geht nicht raus. Kann mal jemand auf den php Teil schauen und mir sagen wo der Fehler stecken kann, ich sehe den Wald vor lauter Bäumen nicht mehr....

Ach so, das Formular habe ich bei "Webbausteine" erstellt und die Daten des PHPMailer liegen im richtigen Verzeichnis.

Danke im voraus. Hier der Code:
<?php

// PHP Fehlermeldungen (1 um das Formular zu testen) anzeigen.
error_reporting(1); // (0/1)

// Weiterleitung - Nach dem absenden des Formulars,
// gelangt der Benutzer über einen Link auf folgende Seite:
$Weiterleitung = "index.php";

// PHPMailer - Download unter:
// https://github.com/PHPMailer/PHPMailer     (Button: "Download ZIP").
// Das entpackte Verzeichnis: "PHPMailer-master" als Unterverzeichnis
// einfügen indem dieses Kontaktformular liegt.

// PHPMailer einbinden, Instanz und Zeichenkodierung setzen.
require "PHPMailer-master/PHPMailerAutoload.php";
$Mailer = new PHPMailer();
$Mailer->CharSet = "UTF-8";

$name = isset($_POST["name"]) ? strip_tags(trim($_POST["name"])) : ""; // Name
$email = isset($_POST["email"]) ? strip_tags(trim($_POST["email"])) : ""; // E-Mail
$telefon = isset($_POST["telefon"]) ? strip_tags(trim($_POST["telefon"])) : ""; // Telefon
$land = isset($_POST["land"]) ? strip_tags(trim($_POST["land"])) : ""; // Land
$fahrzeugmodell = isset($_POST["fahrzeugmodell"]) ? $_POST["fahrzeugmodell"] : ""; // Fahrzeugmodell

// Auswahlliste: Fahrzeugmodell
$array = array (
"Toyota Hilux Double Cab 4WD ohne Ausrüstung", 
"Toyota Hilux Double Cab 4WD mit 1 Dachzelt", 
"Toyota Hilux Double Cab 4WD mit 2 Dachzelten", 
"Toyota Hilux Double Cab 4WD Bushcamper", 
);
$fahrzeugmodellAW = "<select name='fahrzeugmodell' size='1' required='required'>";
foreach ($array as $value) {
 $fahrzeugmodellAW .= "\n  <option value='" . $value . "'" .
 ((isset($_POST["fahrzeugmodell"]) ? $_POST["fahrzeugmodell"] : "") == $value ?
 " selected='selected'" : "") . ">" . $value . "</option>";
}
$fahrzeugmodellAW .= "\n </select>";

$zielort = isset($_POST["zielort"]) ? implode(", ", $_POST["zielort"]) : ""; // Welche Länder möchten Sie bereisen?

// Mehrfachauswahlliste: Welche Länder möchten Sie bereisen?
$array = array (
"Südafrika", "Namibia", "Botswana", "Zimbabwe", 
"Samiba", "Mozambique", "Lesotho", "Swaziland", );
$zielortAW = "<select name='zielort[]' size='8' multiple='multiple' required='required'>";
foreach ($array as $element) {
 !empty($_POST["zielort"]) ?
  $zielortAW .= in_array($element, $_POST["zielort"]) ?
   "\n  <option value='" . $element . "' selected='selected'>" . $element . "</option>" :
   "\n  <option value='" . $element . "'>" . $element . "</option>" :
  $zielortAW .= "\n  <option value='" . $element . "'>" . $element . "</option>";
}
$zielortAW .= "\n </select>";


// Auswahlliste: Anreise am (Tag)
// Bestimmte Tage auswählen z.B.: $Tage = array(10, 20, 30);
$Tage = range(1, 31); // Start, Ende
array_unshift($Tage, "1");
$Tag6 = isset($_POST["Tag6"]) ? $_POST["Tag6"] : "";
$tagKal6 = "\n   <select name='Tag6' required='required'>";
foreach ($Tage as $value) {
 $tagKal6 .= "\n    <option value='" . $value . "'" .
 ((isset($_POST["Tag6"]) ? $_POST["Tag6"] : date("j")) === $value ?
 " selected='selected'" : "") . ">" . $value . "</option>";
}
$tagKal6 .= "\n   </select>\n  ";

// Auswahlliste: Anreise am (Monat)
// Bestimmte Monate auswählen z.B.: $Monate = array(3, 6, 9, 12);
$Monate = range(1, 12); // Start, Ende
array_unshift($Monate, "1");
$Monatsname = array (1=>"Januar", "Februar", "März", "April", "Mai", "Juni", "Juli", "August", "September", "Oktober", "November", "Dezember");
array_unshift($Monatsname, "-");
$Monat6 = isset($_POST["Monat6"]) ? $_POST["Monat6"] : "";
$monatKal6 = "\n   <select name='Monat6' required='required'>";
foreach ($Monate as $value) {
 $monatKal6 .= "\n    <option value='" . $value . "'" .
 ((isset($_POST["Monat6"]) ? $_POST["Monat6"] : date("n")) === $value ?
 " selected='selected'" : "") . ">" . $Monatsname[$value] . "</option>";
}
$monatKal6 .= "\n   </select>\n  ";

// Auswahlliste: Anreise am (Jahr) 
// Bestimmte Jahre auswählen z.B.: $Jahre = array(2016, 2017, 2018);
$Jahre = range(date("Y") -0, date("Y") +2); // Y = Aktuelles Jahr -+ 10 Jahre
array_unshift($Jahre, "2016");
$Jahr6 = isset($_POST["Jahr6"]) ? $_POST["Jahr6"] : "";
$jahrKal6 = "\n   <select name='Jahr6' required='required'>";
foreach ($Jahre as $value) {
 $jahrKal6 .= "\n    <option value='" . $value . "'" .
 ((isset($_POST["Jahr6"]) ? $_POST["Jahr6"] : date("Y")) === $value ?
 " selected='selected'" : "") . ">" . $value . "</option>";
}
$jahrKal6 .= "\n   </select>\n  ";
$anreisedatum = $Tag6 . "." . $Monat6 . "." . $Jahr6; // Datumsformat hier ggf. anpassen!

$fahrzeuguebernahme = isset($_POST["fahrzeuguebernahme"]) ? $_POST["fahrzeuguebernahme"] : ""; // Fahrzeugübernahme in

// Auswahlliste: Fahrzeugübernahme in
$array = array (
"Johannesburg", 
"Kapstadt", 
"Windhoek", 
"Victoria Falls", 
"anderer Ort bitte angeben", 
);
$fahrzeuguebernahmeAW = "<select name='fahrzeuguebernahme' size='1' required='required'>";
foreach ($array as $value) {
 $fahrzeuguebernahmeAW .= "\n  <option value='" . $value . "'" .
 ((isset($_POST["fahrzeuguebernahme"]) ? $_POST["fahrzeuguebernahme"] : "") == $value ?
 " selected='selected'" : "") . ">" . $value . "</option>";
}
$fahrzeuguebernahmeAW .= "\n </select>";


// Auswahlliste: Rückreise am (Tag)
// Bestimmte Tage auswählen z.B.: $Tage = array(10, 20, 30);
$Tage = range(1, 31); // Start, Ende
array_unshift($Tage, "1");
$Tag8 = isset($_POST["Tag8"]) ? $_POST["Tag8"] : "";
$tagKal8 = "\n   <select name='Tag8' required='required'>";
foreach ($Tage as $value) {
 $tagKal8 .= "\n    <option value='" . $value . "'" .
 ((isset($_POST["Tag8"]) ? $_POST["Tag8"] : date("j")) === $value ?
 " selected='selected'" : "") . ">" . $value . "</option>";
}
$tagKal8 .= "\n   </select>\n  ";

// Auswahlliste: Rückreise am (Monat)
// Bestimmte Monate auswählen z.B.: $Monate = array(3, 6, 9, 12);
$Monate = range(1, 12); // Start, Ende
array_unshift($Monate, "1");
$Monatsname = array (1=>"Januar", "Februar", "März", "April", "Mai", "Juni", "Juli", "August", "September", "Oktober", "November", "Dezember");
array_unshift($Monatsname, "-");
$Monat8 = isset($_POST["Monat8"]) ? $_POST["Monat8"] : "";
$monatKal8 = "\n   <select name='Monat8' required='required'>";
foreach ($Monate as $value) {
 $monatKal8 .= "\n    <option value='" . $value . "'" .
 ((isset($_POST["Monat8"]) ? $_POST["Monat8"] : date("n")) === $value ?
 " selected='selected'" : "") . ">" . $Monatsname[$value] . "</option>";
}
$monatKal8 .= "\n   </select>\n  ";

// Auswahlliste: Rückreise am (Jahr) 
// Bestimmte Jahre auswählen z.B.: $Jahre = array(2016, 2017, 2018);
$Jahre = range(date("Y") -0, date("Y") +2); // Y = Aktuelles Jahr -+ 10 Jahre
array_unshift($Jahre, "2016");
$Jahr8 = isset($_POST["Jahr8"]) ? $_POST["Jahr8"] : "";
$jahrKal8 = "\n   <select name='Jahr8' required='required'>";
foreach ($Jahre as $value) {
 $jahrKal8 .= "\n    <option value='" . $value . "'" .
 ((isset($_POST["Jahr8"]) ? $_POST["Jahr8"] : date("Y")) === $value ?
 " selected='selected'" : "") . ">" . $value . "</option>";
}
$jahrKal8 .= "\n   </select>\n  ";
$abreisedatum = $Tag8 . "." . $Monat8 . "." . $Jahr8; // Datumsformat hier ggf. anpassen!

$abreise = isset($_POST["abreise"]) ? $_POST["abreise"] : ""; // Fahrzeugrückgabe in

// Auswahlliste: Fahrzeugrückgabe in
$array = array (
"", "Johannesburg", "Kapstadt", "Windhoek", "Victoria Falls", 
"anderer Ort bitte angeben", );
$abreiseAW = "<select name='abreise' size='1'>";
foreach ($array as $value) {
 $abreiseAW .= "\n  <option value='" . $value . "'" .
 ((isset($_POST["abreise"]) ? $_POST["abreise"] : "") == $value ?
 " selected='selected'" : "") . ">" . $value . "</option>";
}
$abreiseAW .= "\n </select>";

$nachricht = isset($_POST["nachricht"]) ? strip_tags(trim($_POST["nachricht"])) : ""; // Nachricht

// Benutzereingaben überprüfen
// Die Meldungen müssen hier eventuell angepasst werden.
$Fehler = array ("name"=>"", "email"=>"", "fahrzeugmodell"=>"", 
 "zielort"=>"", "anreisedatum"=>"", "anreisedatum"=>"", "fahrzeuguebernahme"=>"", "abreisedatum"=>"", "abreisedatum"=>"", "sicherheit"=>"");
if (isset($_POST["submit"])) {
 $Fehler["name"] = strlen($_POST["name"]) < 1 ? " Bitte füllen Sie dieses Feld aus!" : "";
 $Fehler["email"] = filter_var($_POST["email"], FILTER_VALIDATE_EMAIL) === false ? " Geben Sie eine gültige E-Mail-Adresse ein!" : "";
 $Fehler["fahrzeugmodell"] = $fahrzeugmodell == "" ? " Bitte wählen Sie einen Eintrag aus!" : "";
 $Fehler["zielort"] = $zielort == "" ? " Bitte wählen Sie einen Eintrag aus!" : "";
 $Fehler["anreisedatum"] = !checkdate($_POST["Monat6"], $_POST["Tag6"], $_POST["Jahr6"]) ? " Wählen Sie ein (gültiges) Datum aus!" : "";
 $Fehler["fahrzeuguebernahme"] = $fahrzeuguebernahme == "" ? " Bitte wählen Sie einen Eintrag aus!" : "";
 $Fehler["abreisedatum"] = !checkdate($_POST["Monat8"], $_POST["Tag8"], $_POST["Jahr8"]) ? " Wählen Sie ein (gültiges) Datum aus!" : "";
 $Fehler["sicherheit"] = (md5($_POST["zip"]) != $_POST["zip2"]) ? "Die Rechenaufgabe ist leider falsch!" : "";
}

// Sicherheitsabfrage - Rechenaufgabe
$Z0 = array (mt_rand(1, 9), mt_rand(1, 9));
$Z1 = max($Z0); $Z2 = min($Z0);
$Spam = $Z1 . " &#43; &#" . (48 + $Z2) . ";";
$Schutz = md5($Z1 + $Z2);

// Formular erstellen
$Formular = "
<form name='Form' action='" . $_SERVER["SCRIPT_NAME"] . "#anker' method='post'>
<a id='anker'></a>

<p>
 <label> Name:
<span class='pflichtfeld'>&#10034; " . $Fehler["name"] . "</span><br>
  <input type='text' name='name' value='" . $name . "' size='50' required='required'>
 </label>
</p>

<p>
 <label> E-Mail:
<span class='pflichtfeld'>&#10034; " . $Fehler["email"] . "</span><br>
  <input type='email' name='email' value='" . $email . "' size='50' required='required'>
 </label>
</p>

<p>
 <label> Telefon:
<br>
  <input type='text' name='telefon' value='" . $telefon . "' size='50'>
 </label>
</p>

<p>
 <label> Land:
<br>
  <input type='text' name='land' value='" . $land . "' size='50'>
 </label>
</p>

<p>
 <label> Fahrzeugmodell: 
 <span class='pflichtfeld'>&#10034; " . $Fehler["fahrzeugmodell"] . "</span><br>
 " . $fahrzeugmodellAW . "
 </label>
</p>

<p>
 <label> Welche Länder möchten Sie bereisen?: 
 <span class='pflichtfeld'>&#10034; " . $Fehler["zielort"] . "</span><br>
 " . $zielortAW . "
 </label>
</p>

<p>
 Anreise am: 
 <span class='pflichtfeld'>&#10034; " . $Fehler["anreisedatum"] . "</span><br>
 <label> " . $tagKal6 . "</label>
 <label>: " . $monatKal6 . "</label>
 <label>: " . $jahrKal6 . "</label>
</p>

<p>
 <label> Fahrzeugübernahme in: 
 <span class='pflichtfeld'>&#10034; " . $Fehler["fahrzeuguebernahme"] . "</span><br>
 " . $fahrzeuguebernahmeAW . "
 </label>
</p>

<p>
 Rückreise am: 
 <span class='pflichtfeld'>&#10034; " . $Fehler["abreisedatum"] . "</span><br>
 <label> " . $tagKal8 . "</label>
 <label>: " . $monatKal8 . "</label>
 <label>: " . $jahrKal8 . "</label>
</p>

<p>
 <label> Fahrzeugrückgabe in: <br>
 " . $abreiseAW . "
 </label>
</p>

<p>
 <label> Nachricht:<br>
  <small>Sie haben noch: <strong id='Zeichen10'>500</strong> Zeichen.</small><br>
 <textarea name='nachricht' cols='50' rows='8' onKeyUp='CheckLen10()'>" . $nachricht . "</textarea>
 </label>
</p>

<p>
 <label> Sicherheitsabfrage: 
 <span class='pflichtfeld'>&#10034; " . $Fehler["sicherheit"] . "</span><br>
 <em>" . $Spam . "</em> = 
 <input type='text' name='zip' size='4' pattern='[0-9]{1,2}' required='required' autocomplete='off'>
 </label>
 <input type='hidden' name='zip2' value='" . $Schutz . "'>
 <br><span class='hilfetext'> Bitte lösen Sie die Rechenaufgabe. </span><br>
</p>

<p>
 <br>
 <a href='" . $_SERVER["SCRIPT_NAME"] . "'  style='text-decoration: None;'><input type='button' value='Abbrechen'></a> - 
 <input type='submit' name='submit' value='Formular absenden'>
</p>

<p>
 <small>Bitte alle mit <span class='pflichtfeld'>&#10034;</span>
 markierten Felder ausfüllen.</small>
</p>

</form>

<script>CheckLen10();</script>
";

// Formular abgesendet
if (isset($_POST["submit"])) {

 // Sind keine Benutzer-Eingabefehler vorhanden
 if (implode("", $Fehler) == "") {

  // Daten als E-Mail mit dem PHPMailer versenden (Vorschlag) - Bitte anpassen!

  // E-Mail Absender
  $Mailer->setFrom($email, $name);

  // E-Mail Empfänger
  $Mailer->addAddress("europe@africacamperhire.de", "Africa Camper Hire");

  // Betreff der E-Mail
  $Mailer->Subject = "Anfrage für Africa Camper Hire";

  // Die Zeitzone und das aktuelle Datum setzen
  // http://de3.php.net/manual/de/timezones.europe.php
  date_default_timezone_set("Europe/Berlin");
  $Datum = date("d.m.Y H:i");

  // Inhalt der E-Mail setzen
  $Text = "   Gesendet am: $Datum Uhr
   Name: $name
   E-Mail: $email
   Telefon: $telefon
   Land: $land
   Fahrzeugmodell: $fahrzeugmodell
   Welche Länder möchten Sie bereisen?: $zielort
   Anreise am: $anreisedatum
   Fahrzeugübernahme in: $fahrzeuguebernahme
   Rückreise am: $abreisedatum
   Fahrzeugrückgabe in: $abreise
   Nachricht: $nachricht
  ";
  $Mailer->Body = $Text;

  // E-Mail senden und überprüfen ob diese richtig versandt wurde.
  if ($Mailer->Send()) {

   echo "<p id='anker'>Vielen Dank, die Nachricht wurde versendet.</p>";
  }
  else {

   // Wenn die Daten nicht versendet werden konnten,
   // wird die E-Mail-Adresse für den direkten Kontakt eingeblendet.
   echo "<p id='anker'>Beim Senden der Nachricht ist ein Fehler aufgetreten!<br>" . 
   "Bitte wenden Sie sich direkt an: <a href='mailto:" . $Mailto . "'>" . $Mailto . "</a></p>";
  }

  // Weiterleitung
  echo "<p><a href='" . $Weiterleitung . "'>Weiter</a></p>";
 }
 else {

  // Formular und Benutzer-Eingabefehler ausgeben
  echo $Formular;
 }
}
else {

 // Formular ausgeben
 echo $Formular;
}
?>

Der Ratlose....

13.01.2016 13:54

2 Jörg Kruse

nach Absenden der Daten landet man beim gesetzten Formularanker

D.h. am Anfang des Formulars, also an dieser Stelle (?):

<form name='Form' action='" . $_SERVER["SCRIPT_NAME"] . "#anker' method='post'>
<a id='anker'></a>

Wurde dabei keiner der folgenden Fehlermeldungen in das Formular geschrieben (?):

if (isset($_POST["submit"])) {
 $Fehler["name"] = strlen($_POST["name"]) < 1 ? " Bitte füllen Sie dieses Feld aus!" : "";
 $Fehler["email"] = filter_var($_POST["email"], FILTER_VALIDATE_EMAIL) === false ? " Geben Sie eine gültige E-Mail-Adresse ein!" : "";
 $Fehler["fahrzeugmodell"] = $fahrzeugmodell == "" ? " Bitte wählen Sie einen Eintrag aus!" : "";
 $Fehler["zielort"] = $zielort == "" ? " Bitte wählen Sie einen Eintrag aus!" : "";
 $Fehler["anreisedatum"] = !checkdate($_POST["Monat6"], $_POST["Tag6"], $_POST["Jahr6"]) ? " Wählen Sie ein (gültiges) Datum aus!" : "";
 $Fehler["fahrzeuguebernahme"] = $fahrzeuguebernahme == "" ? " Bitte wählen Sie einen Eintrag aus!" : "";
 $Fehler["abreisedatum"] = !checkdate($_POST["Monat8"], $_POST["Tag8"], $_POST["Jahr8"]) ? " Wählen Sie ein (gültiges) Datum aus!" : "";
 $Fehler["sicherheit"] = (md5($_POST["zip"]) != $_POST["zip2"]) ? "Die Rechenaufgabe ist leider falsch!" : "";
}

13.01.2016 14:14

3 User 1753 (Ex-Mitglied)

Hallo Jörg,

die Fehlermeldungen erscheinen wenn man die Felder nicht ausfüllt. Das funktioniert also.

Der Ratlose

13.01.2016 14:39

4 Jörg Kruse

Sind die Felder des Formulars nach dem Absenden vorausgefüllt?

Wenn nein, dann erkennt das PHP-Script den Parameter 'submit' möglicherweise nicht, was daran liegen kann, dass der Name schon als type in Gebrauch ist. Mit jquery hatte ich dahingehend schonmal Probleme. Allerdings fragt sich dann, warum das Formular auf einer anderen Seite funktioniert hat. Verwendest du auf der Startseite jquery oder ein anderes JavaScript-Framework?

Bau mal testweise an folgenden Stellen ein x- davor:

if (isset($_POST["x-submit"])) {

<input type='submit' name='x-submit' value='Formular absenden'>

if (isset($_POST["x-submit"])) {

Das type='submit' darf hierbei nicht geändert werden!

13.01.2016 15:22 | geändert: 13.01.2016 15:26

5 User 1753 (Ex-Mitglied)

Hallo Jörg,

das mit dem x habe ich probiert, ohne Erfolg.

Die Vorlage war ein bootstrap template in das ich das das Formular eingebaut habe. Die index. Datei liegt als php auf dem Server.

Die andere Seite hat eine andere Struktur, da gibts eine index.html und als Unterseite eine anfrage.php

In der Kombination läuft es sauber. Nur hier wo das Formular in der index.php eingebaut ist nicht.

jquery läuft auch auf der Startseite-

Der Ratlose

13.01.2016 16:14

6 Jörg Kruse

Und sind die Felder des Formulars nach dem Absenden wieder mit den zuvor ausgefüllten Eingaben belegt oder leer? die Beanwortung der Frage ist wichtig, um das Problem weiter eingrenzen zu können.

Der Level 1 für error_reporting ist denke ich noch unsinnig, da sollte zum Debuggen eher eine -1 angegeben werden:

error_reporting(-1);

Dann erst werden alle wichtigen PHP-Fehlermeldungen ausgegeben.

13.01.2016 16:36 | geändert: 13.01.2016 16:40

7 User 1753 (Ex-Mitglied)

Die Felder sind leer, habe mal auf -1 gesetzt und bekomme jetzt folgende Fehlermeldung:

Strict Standards: date(): It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected 'Europe/Berlin' for 'CET/1.0/no DST' instead in /homepages/xxxxxxxx/index.php on line 536

13.01.2016 16:55 | geändert: 13.01.2016 17:04

8 Jörg Kruse

Die Felder sind leer

Irgendwie scheinen die POST Daten nicht anzukommen.

Gibt es für die Startseite noch irgendeine Weiterleitung, z.B. in der .htaccess Datei definiert?

Funktioniert das Formular, wenn du JavaScript im Browser deaktivierst?

und bekomme jetzt folgende Fehlermeldung:

Strict Standards: date(): It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected 'Europe/Berlin' for 'CET/1.0/no DST' instead in /homepages/xxxxxxxx/index.php on line 536

OK, die Fehlermeldung ist harmlos

13.01.2016 17:13

9 User 1753 (Ex-Mitglied)

Das mit der Fehlermeldung habe ich auch gerade gefunden.

.htaccess sieht so aus:

ErrorDocument 404 /404.html
RewriteEngine On
RewriteCond %{HTTP_HOST} !^www\.
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,QSA,L]
RewriteRule ^index\.(html?|php)$ http://%{HTTP_HOST}/ [R=301,QSA,L]

Formular funktioniert auch mit Javascript "aus"

13.01.2016 17:38

10 Jörg Kruse

Da wird von /index.php auf / weitergeleitet:

RewriteRule ^index\.(html?|php)$ http://%{HTTP_HOST}/ [R=301,QSA,L]

Durch diese Weiterleitung gehen wohl die POST-Daten verloren.

Als Ziel des Formulars ist nämlich $_SERVER["SCRIPT_NAME"] definiert, das ist in diesem Fall ein /index.php. Ändere dies mal auf ein hartcodiertes "/":

<form name='Form' action='/#anker' method='post'>

Dann muss nicht mehr weitergeleitet werden, und die POST-Daten bleiben erhalten.

13.01.2016 17:43 | geändert: 13.01.2016 17:45

1 Forenmitglied fand diesen Beitrag gut