Max: GET-Übergabe in Formular wird nicht abgeschickt

Beitrag lesen

* Woher kommen die Parameter? Aus einem Link? Aus einem Formular? Wie sieht der
   HTML-Code dazu aus?
* Die Parameter werden per GET-Methode übergeben, sagst du. Also müssen sie in der
   Adressleiste sichtbar sein. Ist das der Fall? Wenn ja, warum nicht?
* Der Themenbereich "PHP" lässt vermuten, dass du die Parameter mit einem PHP-Script
   verarbeitest. Was sagt ein var_dump($_GET) am Anfang des Scripts?
* Gibt es Abfragen im Script, die über Erfolg oder Misserfolg vorentscheidend sind?
   Wie lauten die relevanten Ausschnitte aus dem Script?

Hallo Martin,

ich habe hier mal die relevanten Schritte am Beispiel des 'Betreff' aufgelistet. Ich hoffe ich habe nichts übersehen. Die Übergabe an das Formular über den Link klappt gut. Beim Absenden/Prüfen des Formulars verschwindet die Eingabe aber wieder.

Link
<a href="/anmelden.php?nr=06&betreff=Anmeldung">Anmelden</a>

//Variablen  
$betreff = isset($_GET["betreff"]) ? $_GET["betreff"] : "";  
  
//Formular  
$formular = "<form name='Form' action='" . $_SERVER["SCRIPT_NAME"] . "#formular' method='post' onsubmit='return check();'>  
    <label for='Betreff'>Betreff *label><br />  
    <input class='span-6' type='text' name='betreff' value='" . $betreff . "' id='Betreff' /><br />  
    <input class='m-btn' type='submit' name='sendung' value='Absenden' /><br /><br />  
    <p>* Pflichtfelder</p>  
    <p class='text-error'><!-- Fehleranzeige --></p>  
</form>\n";  
  
// Wurde das Formular abgesendet  
if ($_SERVER["REQUEST_METHOD"] == "POST" || isset($_POST["sendung"])) {  
  
//Überprüfen  
 if (strlen($betreff) <= 6) $eingabefehler .= "Der Betreff " . ((strlen($betreff) == 0) ? " fehlt" : " ist zu kurz") . " (min. 7 Zeichen).<br />";  
  
 // Sind keine Eingabefehler vorhanden  
 if ($eingabefehler == "") {  
  
  // Diese Nachricht wird an Ihre E-Mail-Adresse gesendet.  
  // Text-Format - \n = neue Zeile.  
  $datum = date("d.m.Y H:i");  
  $text = "  
Gesendet am: $datum \n  
====\n  
Name: $name \n  
E-Mail: $mailfrom \n  
Betreff: $betreff \n  
Nachricht: $nachricht \n  
====";  
  
  // E-Mail versenden  
  $kopfzeile = "MIME-Version: 1.0;\nFrom: " . $mailfrom . "\n";  
  $kopfzeile .= "Content-Type: text/plain; Charset=utf-8;\n";  
  mail($mailto, $betreff, $text, $kopfzeile);  
  
  // Bestätigung der E-Mail  
  echo "<p>" .  
  "Vielen Dank für Ihre Nachricht.<br />";  
 }  
 else {  
  
  // Eingabefehler und Formular ausgeben  
  echo str_replace("<!-- Fehleranzeige -->",  
  "Die Nachricht wurde aus folgendem Grund nicht versendet:<br />" .  
  $eingabefehler, $formular);  
 }  
}  
else {  
  
 // Formular ausgeben  
 echo $formular;  
}