Seite 1 von 2
Beschränkung bei Übergabe von Formularfeldern?
Verfasst: 11.08.2009, 13:36
von Pheidippides
Hallo, vielleicht kann mir jemand einen Tipp geben.
Ich habe ein altes, gut funktionierendes Formular form.php, mit dem 14 Eingabefelder und 6 Bilduploads nach arbeit.php übergeben werden.
Die Größe der Upload-Bilder war bisher beschränkt, jetzt habe ich das Script arbeit.php so umgebaut, dass beliebig große Bilder hochgeladen werden können, aber auf eine maximale Größe verkleinert werden.
Wenn ich nun 4 Bilder mit 3MB hochlade, klappt es. Bei 5 Bildern dieser Größe empfängt arbeit.php gar keine Daten mehr ($_POST).
- Gibt es da eine Volumen-Grenze?
- Wie hoch?
- Wie kann ich das abfangen?
Wie gesagt, es muß am Volumen liegen, ich kann ohne Probleme 6 Bilder kleinerer Größe (zB. je 1MB) uploaden.
Verfasst: 11.08.2009, 13:55
von Nullpointer
schau mal in die php.ini nach upload_max_filesize, was dort konfiguriert ist.
Verfasst: 11.08.2009, 14:21
von nerd
ist dieses setting eigentlich "pro file", oder "pro request" an das script?
Verfasst: 11.08.2009, 14:39
von Pheidippides
Nullpointer hat geschrieben:schau mal in die php.ini nach upload_max_filesize, was dort konfiguriert ist.
Das erklärt die Volumenbeschränkung: 16MB.
@nerd --> alsu request-abhängig.
Jetzt stellt sich die Frage: Wie fange ich ein Überschreiten von upload_max_filesize ab?
Ich kann das Volumen der Uploadbilder erst in arbeit.php ermitteln. Da komme ich aber gar nicht erst hin, weil beim Überschreiten der Grenze überhaupt nichts übergeben wird...
Hat jemand eine Idee?
Verfasst: 11.08.2009, 15:05
von xoni
was sagt Dir "post_max_size", wie hoch ist dort die Einstellung?
https://de3.php.net/manual/de/ini.core. ... t-max-size
Hast Du Zugriff auf die ini bzw, kannst Du ggf. mit einer .htaccess
die Parameter ändern?
Code: Alles auswählen
php_value upload_max_filesize "xxM"
php_value post_max_size "xxM"
php_value max_execution_time 3200
php_value max_input_time 3200
php_value memory_limit xxM
Verfasst: 11.08.2009, 15:11
von Pheidippides
Die post_max_size ist auch auf 16MB gesetzt. Den Zusammenhang habe eben auch ermittelt.
Ich habe leider keinen Zugriff auf die ini, und außerdem weiß ich nicht, wie mächtigee Bilder ein Kunde hochladen will. Deswegen möchte ein Überschreiten von post_max-size und/oder upload_max_filesize durch einen Hinweis an den User abfangen.
Edit: Ich könnte natürlich irgendeine Post-Variable auf Inhalt abprüfen (beim Überschreiten des maximums sind alle Veriablen leer), aber so würde der User bei einem anderen Fehler eventuell auf die falsche Fährte gesetzt werden.
Verfasst: 11.08.2009, 15:46
von xoni
Ich kann das Volumen der Uploadbilder erst in arbeit.php ermitteln. Da komme ich aber gar nicht erst hin, weil beim Überschreiten der Grenze überhaupt nichts übergeben wird...
ja, genau da liegt der Hase im Pfeffer;
es gibt keine Möglichkeit, auf Clientseite zu prüfen, wie groß die
Datei ist. Ein Möglichkeit wäre, das Formular umzubauen. Es gibt
gute Ajaxlösungen (jquery) für mehrere Dateien. Eine andere Lösung
fällt mir leider auch nicht ein. sorry
Verfasst: 11.08.2009, 15:49
von Pheidippides
wollbay hat geschrieben: Ein Möglichkeit wäre, das Formular umzubauen.
Das könnte es wohl werden: Bilder einzeln laden. Würde ich aber gerne vermeiden...
Verfasst: 11.08.2009, 16:21
von xoni
schau mal hier, das ist ganz leicht zum Einbauen
https://demo.swfupload.org/v220/index.htm
Verfasst: 11.08.2009, 16:40
von Pheidippides
Ja, Danke! Sieht gut aus. Mal sehen, ob es mein Problem löst.
Verfasst: 15.08.2009, 08:40
von Outman
Morgen,
es gibt in PHP eine direkte Einstellung wie viel auf den Server geladen werden darf, diese PHP-Einstellungen solltest du auf jeden Fall bei deinem Anbieter überprüfen. Genauso gibt es eine maximale Einstellung für $_POST Daten, wenn du das Limit überschreitest werden automatisch die $_POST Daten überschrieben mit leeren Inhalt. Damit wir dir helfen können solltest du uns hier einen direkten Link zu deiner PHP Info Datei mal schreiben.
Es kann auch passieren bei großen Dateien, wenn du diese verkleinern möchtest, dass nicht genügend Arbeitsspeicher der PHP Anwendung zur Verfügung steht und daher ein PHP Fehlermeldung kommt. Deswegen solltest Du auf jeden Fall die PHP Einstellungen betrachten, und anhand dessen dein Skript anpassen.
Wenn du ein kostenloses Uploadskript suchst, kannst Du dir mal mein Skript unter der Adresse
https://www.php-space.info/bilder-upload-script/ ansehen.
Grüße Nico
Verfasst: 15.08.2009, 08:55
von Synonym
@Outman
Warum eine PHPINFO? Ist sind alle wichtigen Daten genannt worden mit Ausnahme der Laufzeitbeschränkung.
@Pheidippides
Also bei einem Upload von Bilder kann sehr wohl eine Meldung ausgegeben werden wenn "upload_max_filesize" überschritten wird. Das Problem hatte ich nämlich auch anfangs. Datei zu groß -> Script bricht ab -> weiser Bildschirm....
Aber, im Array $_FILES findest Du auch den Bereich "Error" der entsprechende Werte liefert wenn es Fehler gibt.
Etwa
//Wert: 0 UPLOAD_ERR_OK Es liegt kein Fehler vor, die Datei wurde erfolgreich hochgeladen.
//Wert: 1 UPLOAD_ERR_INI_SIZE Die hochgeladene Datei überschreitet die in der Anweisung upload_max_filesize in php.ini festgelegte Größe.
//Wert: 2 UPLOAD_ERR_FORM_SIZE Die hochgeladene Datei überschreitet die in dem HTML Formular mittels der Anweisung MAX_FILE_SIZE angegebene maximale Dateigröße.
//Wert: 3 UPLOAD_ERR_PARTIAL Die Datei wurde nur teilweise hochgeladen.
//Wert: 4 UPLOAD_ERR_NO_FILE Es wurde keine Datei hochgeladen.
Ob das allerdings auch geht wenn Du mehrere Dateien gleichzeitig uploadest weiß ich nicht, kannst es ja aber mal versuchen.
Verfasst: 15.08.2009, 09:01
von Mork vom Ork
Synonym hat geschrieben:Script bricht ab -> weiser Bildschirm....
Einen weisen Bildschirm hätte ich auch gerne mal …
Verfasst: 15.08.2009, 09:10
von Synonym
Ist es Deiner nicht? Meiner schon, der kann nur das Wort "weiß" nicht schreiben

Verfasst: 15.08.2009, 09:28
von Outman
Wenn man einen weißen Bildschirm angezeigt bekommt, sollte man indirekt error_reporting(E_ALL); in die erste Zeile des Script einbauen. Danach bekommt man alle PHP Fehlermeldung angezeigt, anhand der PHP Fehlermeldung, kann man das Skript ordentlich optimieren.
Grüße Nico