Zu viele Daten im Post überlastet Seite?

TribunM

Erfahrenes Mitglied
Ich habe ein kurioses Phänomen entdeckt.

Wenn ich meine csv auslese und die Daten anzeige werden diese in einem zweitenschritt per POST übertragen:

HTML:
{foreach from=$csv[csv_loop] item=wert key=key}
      <input type="hidden" value="{$wert.value}" name="{$key}[]">
{/foreach}

und daraus bastele ich dann jeweils die arrays.

PHP:
$title 	 = $_POST['title'];
$genre 	 = $_POST['genre'];
etc. (sind knapp 20)

Im nächsten Schritt speichere ich die Arrays in die Datenbank. Das klappt wunderbar auf meinem lokalen System, aber nicht auf dem online Server. Wenn ich da das ganze mache, lädt der Browser kurz und schickt mich dann immer wieder zurück ohne Fehler oder sonstige Meldung.

Reduziere ich die Zeilen auf z.B. 50 funktionierts einwandfrei. Das sagt mir, dass es nicht am Programmcode liegt.

Ich habe schon alle möglichen php Variablen Speicher, Timeout usw. angepasst und mir fällt langsam nichts mehr ein, woran das liegen kann.

100 Zeilen dürften doch kein Problem machen. Ich verstehe das einfach nicht. Hat wer eine Ahnung woran das liegen kann? Bin mit meinem Latein langsam echt am Ende.
 
Danke für eure Antworten. post_max_size ist testweise bereits auf 128 MB, genau wie auf dem lokalen System. Das muss doch ausreichen. Session nutze ich auch aber erst nachdem ich die Arrays erstellt habe. Vorher macht das auch keinen Sinn.

Ich habe echt alles versucht bisher. An den unterschiedlichen Betriebssystemem (lokal Windoof, online linux) kann es doch nicht liegen oder?
 
Zuletzt bearbeitet:
Warum überhaupt als versteckte Inputs eintragen und nicht direkt in eine Session?
Das meine ich.

Und eine Fehlersuche ist schwierig ohne zu testen. Eventuell hast du da irgendwo Sonderzeichen drin und es zerbricht deshalb teilweise das Formular?
 
Hi Flex,

wie gesagt ich übertrage die Daten per Post um dann die arrays zu bauen, die ich wiederum in die Session speichere. Aber hm ich könnte die auch direkt in die Session speichern. Aber ist das wirklich besser?

Wenn die Session zugemüllt ist, ist doch auch ein Problem. Außerdem wenn der user (ist nicht nur für mich der Importer) aus irgend einen Grund die Seite wechselt dann sind die Daten folglich noch in der Session. Bei 1000 Datensätzen ist das nicht wirklich performant ^^. Das passiert bei Post nicht, da diese dann nciht mehr verfügbar sind. Das sehe ich auch noch als ein grundsätzliches Problem.

Dahingehend noch eine Frage. Ist die Session genauso limitiert wie post? Also gibt es dafür auch eine Variable, die dessen Speichergröße regelt? Zumindest habe ich das Gefühl dass der Browser sehr langsam reagiert, wenn die Session viele arrays enthält.
 
Die Sessions werden auf deinem Server gespeichert, nicht beim Client. Dieser erhält nur einen kleinen Cookie, der die Session ID beinhaltet bzw. wird die Session ID über die URL weitergegeben.

Falls es wirklich unperformant wird, liegt das eher an deinem Server. Hier könntest du dann die Daten in eine Datenbank auslagern, um so die Last zu mindern.

Alte Sessions werden nach einiger Zeit gelöscht, welche Zeit das ist, hängt von deiner PHP Konfiguration ab, session.gc_maxlifetime.
 
Bisher bin ich mit der Post Variante immer gut gefahren. Ich habe mittlerweile rausbekommen wo der Fehler liegt.

Das Problem sind die suhosin Einstellungen, die erst ab php 5.3 und auch nur in Linux greifen. Bisher hatte ich da echt nicht dran gedacht, weil ich ja keine Fehlermeldung erhalten habe.

Jetzt wurschtel ich mich mal in den Einstellungen durch um das richtige Setting zu finden.
 
Zurück