PHP: Nur 1000 POST-Variablen werden gesendet
Frage von Gast | 23.10.2014 um 14:10
Ich habe eine HTML-Seite mit sehr vielen Checkboxen, Auswahlboxen und Eingabefeldern (Konfiguration vieler Einstellungen). Das ganze ist als HTML-Form angelegt und soll mit einem Submit-Button an ein PHP-Skript weitergeleitet werden.
Merkwürdigerweise kommen aber nicht alle Variablen bei meinem Skript an. Wenn man auf den Submit-Button klickt, werden nur die ersten 1000 Felder übertragen, der Rest wird abgeschnitten. Ich habe das herausgefunden, in dem ich "echo count($_POST[]);" aufgerufen habe.
Was ist da los? Ein Fehler in PHP? Was kann ich tun, um alle Variablen richtig zu übertragen? Man könnte die Variablen natürlich auf mehrere Formen verteilen, jedoch würde ich gerne bei meinem alten Design bleiben.
Ähnliche Themen
Debian: The package is of bad quality: wrong-file-owner-uid-or-gid
Frage | 1 Antwort
PHP: Array in Einzelvariablen schreiben
Tutorial | 0 Kommentare
PHP: Zeit und Performance messen
Tutorial | 0 Kommentare
Android Programmierung: Response von HTTP POST Request empfangen
Tutorial | 3 Kommentare
jQuery: HTML5 Canvas mit Ajax an Server senden
Tutorial | 0 Kommentare
Android Programmierung: Daten per HTTP POST Request senden
Tutorial | 0 Kommentare
HTML Formular: Weiterleitung abhängig von Radiobutton oder Checkbox
Tutorial | 0 Kommentare
Wichtiger Hinweis
Bitte beachten Sie: Die Beiträge auf askingbox.de sind Beiträge von Nutzern und sollen keine professionelle Beratung ersetzen. Sie werden nicht von Unabhängigen geprüft und spiegeln nicht zwingend die Meinung von askingbox.de wieder. Mehr erfahren.
Jetzt mitmachen
Stellen Sie Ihre eigene Frage oder schreiben Sie Ihren eigenen Artikel auf askingbox.de. So gehts.
Seit der PHP Version 5.3.9. gibt es einen Wert "max_input_vars", der festlegt, wie viele Eingabe-Variablen maximal angenommen werden. Dieser Wert ist standardmäßig auf 1000 eingestellt und kann Ursache für dein Problem sein.
Du änderst den Wert zum Beispiel über folgenden Eintrag in der Konfiguration (php.ini):
Wenn deine php.ini noch keinen Wert für "max_input_vars" enthält, kannst du ihn einfach hinzufügen.
Falls du auf deinem Server Suhosin verwendest, solltest du auch hier die Werte entsprechend anpassen:
Auch die Datenmenge wird ab einer bestimmten Größe abgeschnitten. Schau dir dazu den Wert "post_max_size" in deiner PHP-Konfiguration an (in deinem Fall wird es aber wohl eher nur die Anzahl der Felder und nicht die Größe der Daten sein).
Du kannst anschließend über phpinfo() testen, ob die neuen Werte aktiv sind. Hinweis: Nicht vergessen, den Server neu zu starten.
23.10.2014 um 14:13
Falls du keinen Zugriff auf deine php.ini hast, kann auch der folgende Eintrag in deiner .htaccess helfen:
Alternativ kann je nach Hoster auch in einem Unterverzeichnis eine php.ini oder eine user.ini (seit PHP 5.3) angelegt werden.
Mit ini_set("max_input_vars", 5000) kann man allerdings nicht arbeiten, das erlaubt PHP für diesen Wert nicht.
23.10.2014 um 14:13