$_POST leer bei zu langen Texten

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • $_POST leer bei zu langen Texten

    Ich habe ein sehr seltsames Problem das nur auf meinem externen Webserver auftritt und nicht lokal.

    Ich habe eine Art CMS entwickelt das unter anderem auch ein Forum und einen Instant Messenger enthält, hier ist mir online im Betrieb aufgefallen das manche Forenbeiträge und auch IMs nicht gesendet werden bzw es zu seltsamen Fehlern beim absenden kommt...da es sich hier meist um gepastete Texte handelte habe ich zuerst vermutet das es an irgendwelchen Zeichen liegt, dem war aber nicht so.

    Ich wollte erstmal abwarten ob das Problem regelmässig auftritt aber in den letzten Tagen ist es immer wieder vorgekommen und ich habe jetzt festgestellt das es einfach an der Länge der Nachrichten liegt.
    Dh sobald jemand eine Kurznachricht oder einen Forumbeitrag in einer bestimmten Länge eingibt ist der $_POST Wert auf der nächsten Seite leer.

    Natürlich habe ich erstmal einen BUG in meiner Software angenommen und die entsprechenden Formulare testweiste einfach mal auf eine einzelne PHP Datei umgeleitet die mir nur diesen einen $_POST Wert ausgibt und auch dort funktioniert dies nur bis zu einer bestimmten länge.

    Kurioserweise habe ich auch eine Artikelfunktion wo der User bzw Admin Artikel schreiben kann und hier tritt dieses Problem seltsamerweise nicht auf, ich kann hier Seitenlange Texte verfassen und auch einfügen und der $_POST Wert ist immer da, auch in der einzeiligen Test Datei die mir nur diesen Wert ausgibt.

    Beim rumtesten gerade habe ich gesehen das der Unterschied im Artikelformular der Parameter enctype="multipart/form-data" ist, wenn ich diesen im Messenger und Forum ergänze funktioniert das ganze tatsächlich.

    Es handelt sich bei den Formularen aber nur um Texteingabe, kann mir jemand sagen warum ich da ein enctype="multipart/form-data" brauche ? Liegt das einfach an der Datenmenge ?

  • #2
    Es handelt sich bei den Formularen aber nur um Texteingabe, kann mir jemand sagen warum ich da ein enctype="multipart/form-data" brauche ? Liegt das einfach an der Datenmenge ?
    warum du das brauchst, weiss ich nicht. diese angabe benötigt man, wenn per <input type="file" ...> ein datei mit hochgeladen werden soll. was für ein method steht denn im formular?

    gruß
    peter
    Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
    Meine Seite

    Kommentar


    • #3
      das man die angabe benötigt wenn man auch files per form hochlädt weiss ich, nur da ich an der Stelle im Messenger und Forum eben keinen File Upload anbiete habe ich es weggelassen weil ich dachte man bräuchte es dort nicht.

      method ist natürlich post, allerdings klein geschrieben, macht das einen Unterschied? denke nicht, da es ja nur bei langen Texten nicht richtig funzt ohne multipart form-data

      Kommentar


      • #4
        *kopfkratz* - der enctype hat doch keinen Einfluss auf post_max_size, oder?

        Hast du enctype dann ganz weggelassen? Falls ja, probier mal den hier aus:
        enctype="text/plain"

        Obwohl ein ganz normales Form meines Wissens nach das Attribut nicht benötigt
        Ihr habt ein Torturial durchgearbeitet, das auf den mysql_-Funktionen aufbaut?
        Schön - etwas Geschichte kann ja nicht schaden.
        Aber jetzt seht euch bitte php.net/pdo oder php.net/mysqli bevor ihr beginnt!

        Kommentar


        • #5
          ja hatte ich ganz weggelassen mit "text/plain" sind die POST Werte immer leer

          Kommentar


          • #6
            hm, 'text/plain' sollte glaub ich auch nur verwendet werden, wenn 'mailto:...' als action verwendet wird.

            Du könntest mal nachgucken, was der Browser überhaupt immer so absendet, z.B. mit dem Tool hier:

            http://www.blunck.info/iehttpheaders.html

            Damit kannst beobachten, ob der Browser überhaupt die Daten verschickt - aber insgesamt glaub ich eher an ein 'Server-Problem' - hast nen anderen Webspace/Server, wo du testen könntest?
            Ihr habt ein Torturial durchgearbeitet, das auf den mysql_-Funktionen aufbaut?
            Schön - etwas Geschichte kann ja nicht schaden.
            Aber jetzt seht euch bitte php.net/pdo oder php.net/mysqli bevor ihr beginnt!

            Kommentar


            • #7
              naja da es lokal mit dem apache nicht auftritt tippe ich auch auf ein Serverproblem, trotzdem komisch.

              Werde das bei Gelegenheit mal checken, danke für den Link

              Kommentar


              • #8
                Vergleich mal max_input_time auf beiden Servern (php.ini).

                Kommentar


                • #9
                  steht bei beiden auf 60

                  ich kann bei der konfig auch nichts erkennen was dafür verantwortlich sein könnte...naja solange es so funktioniert ist das erstmal egal

                  Kommentar


                  • #10
                    läuft auf der Produktionsmaschine vielleicht der eAccelerator? Der ist nämlich so freundlich und schießt eines meiner OOP-Projekte ab, wenn die Post-Daten die in die Klasse eingespeist werden zu groß sind (die allseits beliebten Segfaults -.-)

                    Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

                    bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
                    Wie man Fragen richtig stellt

                    Kommentar


                    • #11
                      das weiss ich nicht genau, aber ich denke nicht, ist mir jedenfalls noch nichts untergekommen was so heisst, aber dein Problem ist genau das was ich habe wobei die POST Daten garnicht erst ankommen auch ganz ohne klasse

                      Kommentar

                      Lädt...
                      X