PHP Skript nach xx Sekunden beenden
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
angelegenheit
apache
beobachten
brauchen
code
datei
datum
fehler
formular
globalen regel
http
kleinere dateien
minute
mysterium
schau
sekunde
server
treten
tun
url
-
Hallo
Wenn man eine Datei über ein PHP Formular hochlädt und die Datei nicht innerhalb der max_execution_time hochgeladen wurde dann tritt ein timeout-Fehler auf, zumindest soweit ich das beobachten konnte.
Gibt es eine Möglichkeit nach einer gewissen Anzahl an Sekunden (29) das Skript abzubrechen und eine Fehlermeldung wie "Datei konnte nicht innerhalb von 30 Sekunden hochgeladen werden" auszugeben?
mfg -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
voloya schrieb:
Nur ist das nicht die
Wenn man eine Datei über ein PHP Formular hochlädt und die Datei nicht innerhalb der max_execution_time hochgeladen wurde dann tritt ein timeout-Fehler auf, zumindest soweit ich das beobachten konnte.
sondern diemax_execution_time
. Darauf hast du zwar per .htaccess Zugriff, aber du kannst deshalb trotzdem keine eigene Fehlermeldung ausgeben, soweit ich das weiß.max_input_time
Insgesamt läuft zu dem Zeitpunkt PHP noch gar nicht, der Browser überträgt ja die Daten in dieser Zeit noch an den Server; erst wenn alles beim Server angekommen ist wird PHP gestartet... -
Hallo
hackyourlife schrieb:
Nur ist das nicht die
sondern diemax_execution_time
.max_input_time
Danke für die schnelle Antwort :)
Hmm ich hab nochmal rumprobiert.. beides ist auf 30 gesetzt. trotzdem funktioniert ein Upload der 1 Minute 15 Sekunden dauert hin und wieder mal, meistens wird aber nach 1 Minute 10 Sekunden abgebrochen...komisch.
Woran könnte es denn sonst noch liegen?
mfg -
voloya schrieb:
Schau mal mit
Hmm ich hab nochmal rumprobiert.. beides ist auf 30 gesetzt. trotzdem funktioniert ein Upload der 1 Minute 15 Sekunden dauert hin und wieder mal, meistens wird aber nach 1 Minute 10 Sekunden abgebrochen...komisch.
ob der Wert wirklich richtig gesetzt ist... oder ob das mit einer globalen Regel gesetzt wird auf die du keinen Einfluss hast.phpinfo()
-
Hallo
hackyourlife schrieb:
Schau mal mit
ob der Wert wirklich richtig gesetzt ist... oder ob das mit einer globalen Regel gesetzt wird auf die du keinen Einfluss hast.phpinfo()
Steht so drin:
max_execution_time 30 max_file_uploads 20 max_input_nesting_level 64 max_input_time 30 memory_limit 128M
mfg -
voloya schrieb:
Das Timeout ist also richtig gesetzt und auch in Kraft...
Steht so drin:
max_execution_time 30 max_file_uploads 20 max_input_nesting_level 64 max_input_time 30 memory_limit 128M
OK, ich hab jetzt nochmal weiter recherchiert...
ist die maximale Zeit, die ein Script brauchen darf, um die Daten zu parsen.max_input_time
Das hier ist eine Apache-Angelegenheit, also musst du auch beim Apache nachschauen wie du das dort einstellst... da kann ich dir jetzt leider nicht weiterhelfen -
Hallo
hackyourlife schrieb:
Das Timeout ist also richtig gesetzt und auch in Kraft...
OK, ich hab jetzt nochmal weiter recherchiert...
ist die maximale Zeit, die ein Script brauchen darf, um die Daten zu parsen.max_input_time
Das hier ist eine Apache-Angelegenheit, also musst du auch beim Apache nachschauen wie du das dort einstellst... da kann ich dir jetzt leider nicht weiterhelfen
Ich habe auch noch ein wenig gesucht und diesen Thread gefunden:
http://www.php.de/php-fortgeschrittene/41473-php-ini-frage-zu-max_input_time.html
Dort wurde aber keine Lösung für dieses Mysterium gefunden.
In obigem Thread funktioniert der Upload aber wenigstens, bei mir leider nicht, nur äußerst selten. Ich habe nur 300 kbps Upload aber der Fehler tritt auch beim Upload übers Handy (500-1400 kbps up) auf. Vielleicht liegt das ja irgendwie am Server. Kleinere Dateien (< 1MB) lassen sich ohne Probleme hochladen.
mfg -
voloya schrieb:
Das ist ja auch kein Mysterium, sondern klar, warum das so ist...
Dort wurde aber keine Lösung für dieses Mysterium gefunden.
Der Client öffnet ein Socket zum Server, sendet den HTTP-Header und danach die Daten. Serverseitig nimmt das der Apache entgegen und speichert das in einem Puffer. Danach gibt er das an PHP weiter... und du müsstest dem Apache sagen, dass er nur x Sekunden lang Daten entgegennehmen darf...
voloya schrieb:
Erklär bitte, was nicht funktioniert.
In obigem Thread funktioniert der Upload aber wenigstens, bei mir leider nicht, nur äußerst selten
Das Timeout? Oder kannst du überhaupt keine Daten hochladen? Was passiert? -
Hallo
hackyourlife schrieb:
]Erklär bitte, was nicht funktioniert.
Das Timeout? Oder kannst du überhaupt keine Daten hochladen? Was passiert?
Der Upload eines 3.5 MB großen Bildes dauert ~75 Sek. , dabei wird nach diesen 75 Sekunden zu 95% eine timeout-Meldung eingeblendet, nur sehr selten funktioniert der Upload. Kleinere dateien ( 2.5 MB) lassen sich problemlos hochladen.
Ich war mir ja sicher, dass das etwas mit irgendeiner max_time zu tun hat, bloß da es ja doch hin und wieder mal funktioniert...
mfg -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage