Zur Navigation

method="post" funktioniert nicht

1 Anonym (Gast)

Hallo,

ich habe eine Datei "datei.html" in der zum Teil auch php-Code steht, den ich per

<Files datei.html>
AddType application/x-httpd-php .html
</Files>

, das in einer .htaccess steht, parsen lasse. Das funktioniert auch.

Mein Problem ist jetzt, dass sich in der datei.html ein form-tag in folgender form befindet:

<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post" name="testform">
<input name="testinput" type="text">
<input name="testsubmit" type="submit">
</form>

<?php echo $_SERVER['PHP_SELF']; ?> wird beim ausgeben natürlich durch datei.html ersetzt, so dass im Quelltext steht:

<form action="datei.html" method="post" name="testform">

Nur kommt method post anscheinend mit der .html Endung nicht zurecht. Denn sowohl wenn ich die Datei in datei.php umbenenne und method="post" gesetzt lasse, als auch wenn ich - in der datei.html - method="post" zu method="get" ändere werden die Variablen übertragen, was ich mit

echo "<pre>";
print_r($_POST);
echo "</pre>";

bzw.

echo "<pre>";
print_r($_GET);
echo "</pre>";

überprüfe.

Also nochmal zusammengefasst:
datei.php: Variablen werden sowohl per GET als auch per POST übertragen.
datei.html: Variablen werden nur per GET übertragen, bei POST sind sie einfach leer.


Ich hoffe ihr könnt mir bei diesem Problem helfen :)

13.10.2011 20:20

2 Anonym (Gast)

Oh, sorry, ich merke gerade, dass ich in PHP & MySQL hätte posten sollen. :O

Tut mir leid.

13.10.2011 20:23

3 Jörg

Ich habe das mal bei mir getestet und kann das Problem nicht reproduzieren: bei mir kommen die Variablen auch über POST in datei.html an.

Vielleicht ist das ja browserabhängig - mit welcher Browser-Version hast du das getestet (bei mir Opera 11.51)? Und was passiert, wenn du den Browser-Cache leerst?

13.10.2011 20:38

4 Anonym (Gast)

Hallo,
habe es sowohl mit Firefox 7.0.1 als auch mit IE8 probiert.

Den Cache leere ich grundsätzlich eigentlich nach jeder Änderung, die ich ausprobiere.

13.10.2011 20:49

5 Jörg

Bei mir klappt's auch mit Firefox 7.0.1 und Chromium - am Browser liegt es dann wohl nicht.

Möglicherweise hat dein Webhoster den Webserver so konfiguriert, dass er trotz der AddType Direktive in der htaccess Datei keine POST Übermittlung in .html Dateien annimmt. Auf meinem lokalen Testserver funktioniert dies wie gesagt problemlos.

13.10.2011 21:25

6 Anonym (Gast)

Hallo,

nach langem suchen habe ich das Problem jetzt endlich gefunden :)

es lag an dieser

# /beispiel.html --> /beispiel/
RewriteCond %{THE_REQUEST} ^[A-Z]{3,4}\ /[^./]+\.html\ HTTP [NC]
RewriteRule ^([^./]+)\.html$ /$1/ [R=301,L]

Anweisung in meiner .htaccess.

Trotzdem vielen Dank für deine Bemühungen :)

13.10.2011 21:36

7 Jörg

Ja, bei einer Weiterleitung gehen natürlich alle per POST übermittelten Daten verloren :)

13.10.2011 21:40

8 Anonym (Gast)

Da ich auf meine Weiterleitung nicht verzichten möchte habe ich das Problem gelöst, indem ich ins action-Attribut statt "<?php echo $_SERVER['PHP_SELF']; ?>" jetzt einfach "/datei/" geschrieben habe, also die "Endstufe" der Weiterleitung. So bleiben meine POST-Daten erhalten. :)

13.10.2011 22:09

Beitrag schreiben (als Gast)

Beim Verfassen des Beitrages bitte die Forenregeln beachten.





[BBCode-Hilfe]