etrigan: Länge von mit POST übermittelten Daten wirklich egal?

Habe die Ehre,

meines Wissens nach kann ich doch in einem Formular (method=post) beliebig viele Zeichen übertragen und es ist nicht wie bei get auf was weiß ich wie wenig begrenzt.

Jetzt ist es aber so, dass ich eine Seite habe, auf der mir (derzeitiger Stand ca. 200) Datensätze angezeigt werden. Konkret handelt es sich um Adressen und Namen, also pro Datensatz gibt es mehrere Felder. Angezeigt bekomme ich auch alles ohne Probleme. Nur wenn ich auf meinen Submit-Button klicke und mir die Daten anzeigen lasse, die er übertragen sollte, zeigt er mir nur die ersten 19 Datensätze an.
Das Formular wird dynamisch mit Daten aus der Datenbank generiert, sollte also für jeden Datensatz gleich sein. Nur dass eben die ID anders ist.
Die Daten werden mir dann in der Form:
$nachname[23] = "asd";
$vorname[23] = "das";
$strasse[23] = "bla";
etc.
übertragen und im Quelltext hat auch jeder Datensatz seine eigene ID. Von da her müsste also alles ohne Probleme funktionieren. Nur es kommen wie gesagt nur die ersten 19 Datensätze bei meinem Programm an. Jetzt die Frage woran das liegen könnte. Gibts doch eine Zeichenbeschränkung (seis auch nur vom Server, dass der nicht mehr Daten akzeptiert) oder liegts vielleicht doch an meinem Programm.

Die paar input=hidden, die am Ende des Formulars stehen und nicht zu einem speziellen Datensatz gehören, sondern den Aufbau der Seite regeln werden mir ebenfalls nicht übertragen. Nur, wenn ich mir keine Datensätze anzeigen lasse, werden mir diese übertragen.

Vielleicht weiß einer Rat.
Vielen Dank schon mal im Voraus.
Liebe Grüße Etrigan

  1. Gibt es keine Fehlermeldung oder läßt Du nur keine anzeigen?

    1. Gibt es keine Fehlermeldung oder läßt Du nur keine anzeigen?

      ne, ein Fehler kommt nicht. Ich lass mir die Daten dann halt mit einer foreach($_REQUEST) anzeigen, jetzt im Entwicklungsstadium halt und da hört die Ausgabe einfach nach dem 19. auf.

      Grüße Etrigan

      1. Gibt es keine Fehlermeldung oder läßt Du nur keine anzeigen?

        ne, ein Fehler kommt nicht. Ich lass mir die Daten dann halt mit einer foreach($_REQUEST) anzeigen, jetzt im Entwicklungsstadium halt und da hört die Ausgabe einfach nach dem 19. auf.

        Ich tippe auf HTML-Codefehler. Validieren!

        - Sven Rautenberg

      2. Mahlzeit etrigan,

        Gibt es keine Fehlermeldung oder läßt Du nur keine anzeigen?

        ne, ein Fehler kommt nicht.

        Lässt Du Dir diese denn überhaupt anzeigen?

        MfG,
        EKKi

        --
        sh:( fo:| ch:? rl:( br:> n4:~ ie:% mo:} va:) de:] zu:) fl:{ ss:) ls:& js:|
        1. Lässt Du Dir diese denn überhaupt anzeigen?

          Also error_reporting(E_ALL) is drin. Was mich allerdings grad noch etwas stutzig macht, dass er so ganz und gar nix anzeigt. Also keine Fehler, nich mal nen Hinweis. Das find ich bei mir jetzt ungewöhnlich... :)
          Und irgendwas scheint mit dem PHP auf dem Server auch nich ganz zu stimmen, oder kann man seit Neuestem vor dem Beginn einer Session oder einer Header-Angabe auch schon Text ausgeben lassen, ohne dass das Programm in die Knie geht?

          Ich tippe auf HTML-Codefehler. Validieren!

          • Sven Rautenberg

          Validiert ist es in der Zwischenzeit auch. Keine Besserung.
          Auch wenn ich ne neue Datei nehm und nur den fürs Programm wichtigen Code stehen lass, sprich alle Grafiken, Menüs etc. weg lass zeigt er mir nur die besagten 19 Datensätze.

          Grüßle Etrigan

          1. Hi,

            Und irgendwas scheint mit dem PHP auf dem Server auch nich ganz zu stimmen, oder kann man seit Neuestem vor dem Beginn einer Session oder einer Header-Angabe auch schon Text ausgeben lassen, ohne dass das Programm in die Knie geht?

            Stichwort output buffering.

            MfG ChrisB

            --
            „This is the author's opinion, not necessarily that of Starbucks.“
  2. Hallo,

    in der php.ini gibt es die einstellungen post_max_size: php.net: ini settings

    mfg, Flo

    --
    sh:) fo:| ch:? rl:( br:^ n4:| ie:{ mo:| va:} de:> zu:} fl:{ ss:) ls:< js:|
    1. HI!

      Röchtöch! Post kann man sich wie eine E-Mail an den Server vorstellen. Der nimmt einfach alles im Body und verwurstet es. Solange ihm niemand gesagt hat, 'verwurste bitte maximal x'.

      Da aber scheinbar nach genau 19 Datensaetzen schluss ist, waere das entweder ein zufall, oder Svens Vermutung bezueglich eines HTML Fehlers ist korrekt.

      --
      "Die Diebesgilde beklagte sich darueber, dass Mumm in aller Oeffentlichkeit behauptet hatte, hinter den meisten Diebstaehlen steckten Diebe."
            - T. Pratchett
      1. HI!

        Röchtöch! Post kann man sich wie eine E-Mail an den Server vorstellen. Der nimmt einfach alles im Body und verwurstet es. Solange ihm niemand gesagt hat, 'verwurste bitte maximal x'.

        Da aber scheinbar nach genau 19 Datensaetzen schluss ist, waere das entweder ein zufall, oder Svens Vermutung bezueglich eines HTML Fehlers ist korrekt.

        Habe die Ehre,

        also, ich hab jetzt mal noch ein bisschen rumprobiert und z.B. mal für jeden Datensatz nur ein Feld ausgeben lassen. Sprich nur den Nachnamen und siehe da, wie durch Zauberhand wurden mir plötzlich alle 180 Nachnamen per post übertragen. Wenn ich den Vornamen mit dazu genommen hab, warens schon nur noch 100 Datensätze, mit der Straße auch noch dabei nur noch 67 usw.
        Was ja schon darauf schließen lässt, dass post_max_size dementsprechend klein eingestellt is. Laut Provider is der Wert allerdings auf 32MB und das werd ich wohl mit 19 Datensätzen nicht erreichen.

        Zum HTML-Fehler lässt sich sagen Zitat W3C-Validator: "This document was Tentatively checked as XHTML 1.0 Transitional"

        Nunja, ich lass es jetzt erst mal gut sein, vielleicht stolper ich ja irgendwann mal über den Fehler oder es liegt doch am Prov, dass der meint es seien 32MB es aber gar nich sind ;)

        Danke auf jeden Fall mal und ein schönes Wochenende.
        Grüße Etrigan

        1. Hallo,

          Was ja schon darauf schließen lässt, dass post_max_size dementsprechend klein eingestellt is. Laut Provider is der Wert allerdings auf 32MB und das werd ich wohl mit 19 Datensätzen nicht erreichen.

          Lass dir mal in firebug anzeigen, was in wirklichkeit alles übertragen wird, es werden ja auch die jeweiligen variablennamen übertragen und es gibt so eine Einstellung, dass nach X per post empfangenen Variablen aufgehört wird zu parsen. Ich weiß nicht wie die heißt, aber ich weiß, dass diese Einstellung PHPMyAdmin viele probleme macht (bei größeren Tabellen) und vllt kannst du bei denen in der FAQ ja mal nachlsesen.

          mfg, Flo

          --
          sh:) fo:| ch:? rl:( br:^ n4:| ie:{ mo:| va:} de:> zu:} fl:{ ss:) ls:< js:|
          1. Lass dir mal in firebug anzeigen, was in wirklichkeit alles übertragen wird, es werden ja auch die jeweiligen variablennamen übertragen und es gibt so eine Einstellung, dass nach X per post empfangenen Variablen aufgehört wird zu parsen. Ich weiß nicht wie die heißt, aber ich weiß, dass diese Einstellung PHPMyAdmin viele probleme macht (bei größeren Tabellen) und vllt kannst du bei denen in der FAQ ja mal nachlsesen.

            Servus,

            also, ich hab mal die Variablennamen mal gekürzt, das hat nix gebracht. Und laut phpinfo() is der Wert post_max_size is auf 32M das passt also. Allerdings gibts auch noch einen Wert suhosin.post.max_vars und der steht auf 200 und wenn ich alle Variablen, die er mir überträgt zähle, dann komme ich wunder was auch auf den Wert 200 ;)

            Sprich den Fehler hab ich gefunden, muss ich nur noch meinen Prov davon überzeugen, dass er mir das ändert und das sollte auch kein Problem geben.

            Danke an alle, die geholfen haben.
            Grüße Etrigan

            von mir aus:
            <- closed

            1. Hallo,

              Oder die Sachen komprimiren, z.B. per JSON oder einer ähnlichen Methode.

              mfg, Flo

              --
              sh:) fo:| ch:? rl:( br:^ n4:| ie:{ mo:| va:} de:> zu:} fl:{ ss:) ls:< js:|