Caliga: /(BROWSER) method="post" enctype="text/plain" geht nicht?

Hallöchen!
Ich hab ein Formular mit
method="post" enctype="text/plain"

Davon kommt aber in meinem PHP-Script nichts an.
get  + plaintext        geht einwandfrei.
post + standardencoding geht einwandfrei.

Kennt einer einen möglichen Grund?
Sobald ich das Encoding weglasse, geht alles Einwandfrei...
Bis auf die Tatsache vielleicht, dass " als " erscheinen und ich diese wandeln müßte.
Ein paar der übertragenen Felder enthalten HTML-Tags. Kann das ein Problem sein?

  1. Hello,

    und was ist mit

    post + enctype="multipart/form-data"

    Das wäre die übliche Angabe, damit es auch mit Uploads klappt.

    Die Backslashes werden von PHP als Schutz für Datenbanken dazugemogelt, wenn    magic_quotes_gpc == ON sit. Das ist der Default "out of the Box".

    get_magic_quotes_gpc() -->  Zeigt die aktuelle Konfiguration von magic quotes gpc

    Und dann kann man mit stripslashes() die Backslashe wieder entfernen, oder eben in der INI die Einstellung ändern.

    Grüße

    Tom

  2. Hallo Caliga,

    Ich hab ein Formular mit
    method="post" enctype="text/plain"

    Davon kommt aber in meinem PHP-Script nichts an.

    Jain. Bei Mozilla schon, beim IE nicht. Dafür hält sich der IE wortwörtlich an Dein text/plain, der verschickt es nämlich so:

    POST /datei.php HTTP/1.1
    Host: example.org
    Sonstwas: sonstwas

    Feld1: Wert1
    Feld2: Wert2

    Der Webserver bzw. PHP erwartet dagegen folgendes:

    POST /datei.php HTTP/1.1
    Host: example.org
    Sonstwas: sonstwas

    Feld1=Wert1&Feld2=Wert2

    (das wäre application/x-www-form-urlencoded)

    PHP akzeptiert desweiteren auch multipart/form-data, das man für Uploads braucht. (das sieht etwas anderes aus)

    Aber text/plain wird von PHP *nicht* akzeptiert.

    Sobald ich das Encoding weglasse, geht alles Einwandfrei...

    Warum zum Teufel willst Du überhaupt text/plain angeben?

    Bis auf die Tatsache vielleicht, dass " als " erscheinen und ich diese wandeln müßte.

    Ja, das sind die unsäglichen magic_quotes_gpc.

    Ein paar der übertragenen Felder enthalten HTML-Tags. Kann das ein Problem sein?

    Nein.

    Viele Grüße,
    Christian

    1. huhu.
      Danke erst mal allen Antwortenden.
      multipart/form-data
      funktioniert natürlich :)
      (wenn ich die slashes strippe)

      Jain. Bei Mozilla schon, beim IE nicht. Dafür hält sich der IE wortwörtlich an Dein text/plain, der verschickt es nämlich so:

      Öhm... wenn's mit dem Mozilla (1.5) gehen würde, hätte ich das Problem vielleicht gar nicht so schnell bemerkt...

      PHP akzeptiert desweiteren auch multipart/form-data, das man für Uploads braucht. (das sieht etwas anderes aus)

      Warum zum Teufel willst Du überhaupt text/plain angeben?

      Naja, dachte das gehört so ;)
      Und "normaler Text" hat sich für mich irgendwie sinnvoller anghört als
      "Wort1+Wort2+blablubb%FC%E4%F6" oder so was...
      Außedem sollten bei plaintext ja z.B. Zeilenumbrüche umgewandelt werden, aber damit macht PHP ja zum Glück auch so keine Probleme :)

      1. Hallo Caliga,

        Jain. Bei Mozilla schon, beim IE nicht. Dafür hält sich der IE wortwörtlich an Dein text/plain, der verschickt es nämlich so:

        Öhm... wenn's mit dem Mozilla (1.5) gehen würde, hätte ich das Problem vielleicht gar nicht so schnell bemerkt...

        Echt, haben sie das Verhalten inzwischen geändert? Also bei 0.9.4 oder 0.9.5 wars noch nicht so... (da habe ich das zuletzt getestet)

        Viele Grüße,
        Christian

  3. Moin!

    Ich hab ein Formular mit
    method="post" enctype="text/plain"

    Davon kommt aber in meinem PHP-Script nichts an.

    Ist logisch erklärbar: Für die Codierung "text/plain" hat PHP keine Dekodierungsfunktion. Es kann nur mit "multipart/form-data" und dem Standard (wenn man nichts angibt) "application/x-www-form-urlencoded" umgehen.

    Bis auf die Tatsache vielleicht, dass " als " erscheinen und ich diese wandeln müßte.

    Das liegt an der Einstellung von PHP. Es gibt die Option "magic_quotes_gpc", die bei dir eingeschaltet ist. Das kannst du grundsätzlich nur ändern, wenn du die PHP-Konfiguration verändern kannst.

    In deinem Skript selbst kannst du nur abfragen ob magic_quotes_gpc gesetzt ist, und in diesem Fall stripslashes() auf deine Variablen anwenden, die aus dem Formular kommen.

    - Sven Rautenberg

    --
    "Beim Stuff für's Web gibts kein Material, was sonst das Zeugs ist, aus dem die Sachen sind."
    (fastix®, 13. Oktober 2003, 02:26 Uhr -> </archiv/2003/10/60137/#m338340>)