| | | | |
| |||||||
| PHP-Fortgeschrittene Arbeiten mit PHP ohne Einschränkungen |
|
| | LinkBack | Themen-Optionen | Thema bewerten |
| | ||
| Gast
Beiträge: n/a
| Hallo miteinander, Kennt jemand das Problem oder eventuell ein Lösung? Arbeite gerade an einem FTP-Client in HTML. Nun soll der Download von einem FTP-server an den Browser weitergeleitet werden. Soweit so gut. Funktioniert eigendlich alles wunderbar. Nur das manchmal der Download abbricht. Mal nach 5 sec, mal nach 5 min und dann gehts auch mal wieder. Habe nun schon sehr lange nach dem Fehler gesucht. Und folgendes festgestellt. Das Script: PHP-Code: Das Script hängt sich manchmal bei print $buffer; auf. Im Logfile steht: Zitat:
(1) echo probiert => gleiches P. (2) socket_get_status() ausgegeben => kein time_out, etc. (3) fpassthru($fd) statt schleife => gleiches P. (4) socket_set_blocking($fd,false) => gleiches P. Ich habe mir sogar ein paar andere Scripte geholt und probiert ob die das können. Und die hängen sich auch auf. Was mich jetzt total überfordert. Bisher bin ich davon ausgegangen das ich irgend einen Fehler mache. Das scheint dann aber einer zu sein, den die anderen auch machen. Blos welchen? Vielen Dank Jesko PS: Der link zu phpinfo() http://www.layb.com/work/phpinfo.html | |
|
| | |
| PHP Code Flüsterer Registriert seit: 21.08.2005 Beiträge: 4682 PHP-Kenntnisse: Fortgeschritten | |
| | |
| Moderator Registriert seit: 03.09.2004
Beiträge: 11.792
PHP-Kenntnisse: Fortgeschritten ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() | wie siehts mit max-execution-time aus? vieleicht ein problem des servers auf den du connectest oder dort dann irgendwie "festgehalten wirst" ?
__________________ robo47.net - Blog, Codeschnipsel und mehr | |
| | |
| | |
| Moderator Registriert seit: 03.09.2004
Beiträge: 11.792
PHP-Kenntnisse: Fortgeschritten ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() | hmm irgendwie hab ich das etwas verplant wo er hängt, hmm vieleicht mal noch php version oder link auf php info posten,
__________________ robo47.net - Blog, Codeschnipsel und mehr | |
| | |
| | ||
| Gast
Beiträge: n/a
| Eine wichtige Ergänzung noch dazu: Script: PHP-Code: Zitat:
HtmlServer <-> Browser trennt, läuft das Script also wieder weiter. Als ob irgend ein Puffer voll ist und das Script dann bei der Ausgabe anhält. Ist in Opera und IE so. Also nicht Browserspezifisch. Jesko @robo47: Der link zu phpinfo() http://www.layb.com/work/phpinfo.html | |
|
| | |
| Gast
Beiträge: n/a
| Moin marsch, hab den non-blocking mode (socket_set_blocking) auch schon ausprobiert. Der Socket bekommt Daten. Ich kann die auch immer noch validieren (wird als String erkannt) bevor es sich beim print-Befehl aufhängt. Das ist definitiv der Punkt wo das Script sich aufhängt. fpassthru verhält sich übrigens ähnlich. Wenn man die verbindung trennt läuft das script weiter. Und mal klappt der Download, mal nicht. Hab jetzt das das Script mal auf einen anderen Server laufen. Da läuft es einwandfrei. Ich glaube es handelt sich hier um einen serverspezifischen Grund. Der link zu phpinfo() http://www.layb.com/work/phpinfo.html Irgendwas scheine ich da zu übersehen. Andererseits sind die Fremdscripte auf meinem Server genauso unregelmäßig abgebrochen.( http://www.raditha.com/php/ftp/ ) Das muss doch irgendwas mit der Umgebung zu tun haben. Ich habe keine Fehlerausgaben von PHP. Das Script sitzt einfach fest bis man den Download abbricht. Dann geht die schleife weiter und beendet das Script.(s.oben). Jesko PS: FTP-Log? Ich habe nur die xferlog_regular.processed von Plesk7.1.6 und die zeigt mir an das manche downloads complete und andere incomplete waren. Das Error-Logfile zeigt keinen fehler. |
|
| | |
| Gast
Beiträge: n/a
| Hallo marsch, ich bin nicht sicher ob ich dich richtig verstanden habe, aber wie soll denn das der Grund sein. Sieh Dir oben mal das Logfile an. Wenn er bei fread sich aufhängen würde müßte der letzte Eintrag im Logfile "n" sein. Der Eintrag nach dem es aber hängt ist "v" und dieses "v" wird nach fread und vor print in das Logfile geschrieben. Bei allen getesteten Downloads hatte $buffer auch einen Inhalt. Desweiteren verstehe ich bei deinem Ansatz auch nicht wie der Browserseitige Abbruch des Downloads den Datentransfer zwischen HTML-Server und FTP-Server beeinflussen soll. Vielleicht noch einmal genauer. Ich rufe über den Browser ein Script auf welches eine Socket-Verbindung zu einem FTP-Server herstellt, eine Datei downloadet und die ankommenden Datenpakete an den Browser weiterleitet. Deine Überlegung hatte ich ja auch schon. Das meinte ich mit socket_set_blocking. Das ist meines erachtens dafür da, dass wenn es keine Datenpackete gibt, das Script trotzdem weiterläuft. http://de3.php.net/manual/de/functio...t-blocking.php Script: PHP-Code: Wieder das gleiche. Code: v:0 >:< n v:0 >:< n v:8072 >M: < n v:7049 >$:>*: < usw... bis: v:2358 >Á: < n v:1644 >i: < n v:908 >§: < // Hier hängt er sich wieder auf (also vor Print mit Daten in $Buffer) und... Client hat aufgelegt. // Hier habe ich beim Browser den Download abgebrochen und das Script läuft weiter. Und selbst wenn es mit den Zeichenmenge zu tun hätte, wäre das keine Lösung. Was ist denn dann, wenn der FTP-Server nicht mal 512 Zeichen schafft. Dann sollte das Script auch noch gehen. Und wie schon gesagt: Auf anderen Servern habe ich keine Problem. Danke Jesko |
|
|
| Themen-Optionen | |
| Thema bewerten | |
|
|
Ähnliche Themen | ||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| $error weiterleiten | Benjamin | PHP Tipps 2008 | 10 | 29.07.2008 11:59 |
| Hash-Werte | Raito | PHP Tipps 2008 | 10 | 07.04.2008 15:47 |
| Anfänger bittet um KleinLoginScriptPrüfung / PHP und MySql | prinzli | PHP Tipps 2008 | 10 | 08.11.2007 08:07 |
| Formuilar hilfe | imported_chewy | PHP Tipps 2006 | 25 | 15.05.2006 15:14 |
| Problem mit Print() und Echo() Verarbeitung. | silverghost | PHP-Fortgeschrittene | 4 | 28.02.2006 12:07 |
| Textarea und &gt; | PHP-Fortgeschrittene | 9 | 07.02.2006 00:34 | |
| Problem mit While-Schleife | PHP Tipps 2007 | 5 | 27.12.2005 20:02 | |
| [Erledigt] Formular formatieren | HTML, Usability und Barrierefreiheit | 5 | 30.01.2005 13:45 | |
| guestbook problem #2 | PHP Tipps 2005 | 7 | 04.01.2005 11:19 | |
| Partykalender, Probleme | PHP Tipps 2004-2 | 6 | 26.12.2004 13:19 | |
| get und if funktion | PHP Tipps 2004 | 14 | 23.09.2004 04:01 | |
| mysql Fehler - query was empty | Anuschka | Datenbanken | 2 | 01.09.2004 00:28 |
| Datenbankergebnis in Array und per Index darauf zugreifen | PHP Tipps 2004 | 7 | 30.07.2004 18:39 | |
| [Erledigt] Datenübergabe | PHP Tipps 2004 | 2 | 20.07.2004 19:06 | |
| Gästebuch / Include Problem | PHP Tipps 2004 | 9 | 14.07.2004 18:48 | |
| Besucher kamen über folgende Suchanfragen bei Google auf diese Seite |
| fread schleife, http://www.php.de/php-fortgeschrittene/27636-print-o-echo-haengt-bei-feof-fread-schleife-fsockopen.html, fsockopen schleife, fsockopen fread hängt, fread non blocking, php keine daten fsockopen fread, php fread nonblocking, fread php, php fread schleife, feof fsockopen, php download script browser hängt, echo print funktioniert nicht in schleife, fread dauerschleife, fsockopen fread print hängt, php feof schleife, php script stoppt bei fsockopen, fsockopen feof hängt, php fread put incomplete, feof fread, fread c block echo |

Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.