Hallo zusammen,
hier eine Kurzfassung: Ein PHP-Skript läuft im Webserver relativ lange, da es mit set_time_limit() verlängert wird. Im selben Moment soll ein weiteres Skript aufgerufen werden. Da scheint allerdings vom anderen Skript blockiert zu werden, bis es fertig ist.
Und jetzt im Detail. Ich habe folgende Anforderung umzusetzen. Auf einem Server befinden sich Dateien. Benutzer können mit einem Webfrontend diese Dateien downloaden. Ein Client hat ebenfalls diese Software (ein kleines Webinterface) installiert und bei Bedarf kann der Client mit dem Server Daten austauschen. Dazu lädt das Skript die Dateien vom Server bzw. uploaded sie. Da die Dateien relativ groß sind (ca. 30MB) dauert das ganze natürlich eine Zeit lang. Die Daten tausche ich per FTP mittels PHP-FTP-Funktionen aus. Damit das Skript nicht abbricht nutze ich set_time_limit(). Jetzt zum eigentlichen Problem. Ich wollte eine Progessbar anzeigen, wieviel der Datei schon gedownloaded ist. Also habe ich folgendes machen wollen: Ich rufe per http_request ein Skript auf, welches die Datei lädt. Das Skript läuft natürlich relativ lange. Damit ich nun sehen kann, wieviel der Datei schon gedownloaded ist, macht ein anderer Http-Request im 2 Sek. Rhythmus eine Abfrage, wie groß die gedownloadete Datei bereits ist. Daraufhin hätte ich dann die Anzeige in einer Progressbar per JavaScript angezeigt. Der zweite HTTP-Request funktioniert allerdings nicht, denn die PHP-Seite, die hier aufgerufen werden soll, ist solange nicht aufrufbar, bis die Datei gedownloaded ist. Scheinbar blockt das eine Skript das andere Skript. Hat jemand eine Idee, was man hier machen kann?!?
Gruß und schon herzlichen Dank für die Antworten!
Daniel