php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > Entwicklung > PHP Developer Forum
 

Login

 
eingeloggt bleiben
star Jetzt registrieren   star Passwort vergessen
 

 

 


PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Fragen zu Laravel, YII oder anderen PHP-Frameworks.

Antwort
 
LinkBack Themen-Optionen Thema bewerten
  #1 (permalink)  
Alt 05-07-2006, 12:26
progman06
 Newbie
Links : Onlinestatus : progman06 ist offline
Registriert seit: Jul 2006
Beiträge: 5
progman06 ist zur Zeit noch ein unbeschriebenes Blatt
Standard Buffering, Flush, Sleep = Problem

Hallo zusammen, bin bei der Socketgeschichte dran und würde ja sehr gerne sehen was mein Server macht, ich führe den server nicht unter Linux aus, sondern zum testen über den IE 6.0 und Firefox.

Dabei ergab sich das Problem, das die Ausgaben nicht erscheinen, weil der Puffer nicht geleert wird.

um das nicht komplex werden zu lassen, habe ich mich auf ein minimales Beispiel berufen, das mein problem aufweist:

PHP-Code:

<?php

// Flushtest 1

ob_implicit_flush(1);
$count=0;
while(
1){

    echo 
"<br>".$count;

    
$count++;
    
    
ob_flush();
    
flush();

}

?>
Gewünscht ist das ganze allerdings mit usleep(5000); noch drinnen

Ich bekomme keine Ausgaben, beim allerersten Aufruf, da ging es, da ratterte er alles durch, aber weiss nichtmehr ob das der code dazu war, hab zuviel rumgefummelt. Allerdings hatte ich bei dem Code wo es ging dann usleep(5000) eingefügt und da ging er schon direkt mal nichtmehr.

Habe zudem an allen möglichen stellen al ob_start_flush und ob_end und all sowas hingepflanzt, aber auch keine Änderung.

Kann sowas auch von den EInstellungen des Servers abhängig sein?
Kann das an den Einstellungen im IE6 oder Firefox liegen?

Bitte um Rat und Hilfe

Danke
Mit Zitat antworten
  #2 (permalink)  
Alt 05-07-2006, 12:52
tha_specializt
 Newbie
Links : Onlinestatus : tha_specializt ist offline
Registriert seit: Dec 2005
Beiträge: 30
tha_specializt ist zur Zeit noch ein unbeschriebenes Blatt
Standard

du benutzt die völlig falschen Befehle. die ob_ -Befehle sind PUFFER, und diese habe die Eigenschaft Dinge NICHT auszugeben, solange du diesen nicht beendest.
So wirds funktionieren, und so isses auch gedacht (allein schon dein Anfang ist völlig sinnlos):
PHP-Code:
ob_start();
blablablablabla  
blubb    
ob_get_contents
(); // wenn du VOR dem Ende des Puffers auslesen willst   
ob_end_flush(); // Hier wird der Inhalt NACH dem Puffer ausgegeben 
dein Code (?) da oben beendet zuerst einen nicht existenten Puffer (!!) und schaltet die Ausgabe ein (sinnlos). Ich sehe, dass du nicht wirklich ein Verständnis für PHP hast... musst noch mehr üben UND dich mit ECHTEN (!!) Servern beschäftigen. Dein Heim-PC mit Apache drauf usw. ist kein Server. Ein Server steht in nem Rechenzentrum und hat ne sehr spezielle Hardware. Ausserdem stellt ein Client-Apache keine wirklich reale Testumgebung dar, fast alle Webspaces und Rootserver sind komplett anders konfiguriert da müsstest du umlernen. Hol dir nen kostenlosen Webspace und teste dort, da haste dann reale Umgebungen

Geändert von tha_specializt (05-07-2006 um 12:58 Uhr)
Mit Zitat antworten
  #3 (permalink)  
Alt 05-07-2006, 15:20
progman06
 Newbie
Links : Onlinestatus : progman06 ist offline
Registriert seit: Jul 2006
Beiträge: 5
progman06 ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Es würde reichen, wenn du einem hilfst und nicht angreifst, denn dir hab ich nix getan.

Danke.
Mit Zitat antworten
  #4 (permalink)  
Alt 05-07-2006, 15:24
Abraxax
  THE REAL HAXE (Administrator)
Links : Onlinestatus : Abraxax ist offline
Registriert seit: Jul 2002
Ort: neuss.nrw.de
Beiträge: 22.623
Abraxax befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Original geschrieben von progman06
ich führe den server nicht unter Linux aus, sondern zum testen über den IE 6.0 und Firefox.


Zitat:
Original geschrieben von progman06
Es würde reichen, wenn du einem hilfst und nicht angreifst, denn dir hab ich nix getan.
blah blah blah. solche posts kannst du getrost unterlassen, wenn man versucht dir zu helfen!
__________________
INFO: Erst suchen, dann posten! | MANUAL(s): PHP | MySQL | HTML/JS/CSS | NICE: GNOME Do | TESTS: Gästebuch | IM: Jabber.org |


Mit Zitat antworten
  #5 (permalink)  
Alt 05-07-2006, 15:32
progman06
 Newbie
Links : Onlinestatus : progman06 ist offline
Registriert seit: Jul 2006
Beiträge: 5
progman06 ist zur Zeit noch ein unbeschriebenes Blatt
Standard

pf, er wird angreifend und macht einen auf klugscheisser, dabei hat er nichtmal meine Frage korrekt beantwortet
Mit Zitat antworten
  #6 (permalink)  
Alt 05-07-2006, 15:37
progman06
 Newbie
Links : Onlinestatus : progman06 ist offline
Registriert seit: Jul 2006
Beiträge: 5
progman06 ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Das er mir die zahlen runterrattert, das habe ich wie ich oben beschrieben habe auch hinbekommen gehabt.


Denn ich möchte

PHP-Code:
usleep(5000); 

hier mit rein haben

PHP-Code:

$count
=1;
while(
1){
    
ob_start();
    echo 
"<br>".$count;

    
$count++;
    
    
//ob_get_contents(); // wenn du VOR dem Ende des Puffers auslesen willst
    
ob_end_flush(); // Hier wird der Inhalt NACH dem Puffer ausgegeben


Sobald dort an welcher Stelle auch immer aber das usleep eingesetzt wird, läd er ohne ende und ohne ausgaben.

php.net
Mit Zitat antworten
  #7 (permalink)  
Alt 05-07-2006, 17:07
progman06
 Newbie
Links : Onlinestatus : progman06 ist offline
Registriert seit: Jul 2006
Beiträge: 5
progman06 ist zur Zeit noch ein unbeschriebenes Blatt
Standard

weil er das sleep dann mitbuffert...yo


und welche alternativen gibt es dazu dann?

hatte überlegt die ausgabe und das sleep seperat zu buffern


aber funzt auch nicht.
Mit Zitat antworten
  #8 (permalink)  
Alt 05-07-2006, 21:17
tha_specializt
 Newbie
Links : Onlinestatus : tha_specializt ist offline
Registriert seit: Dec 2005
Beiträge: 30
tha_specializt ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Kinders.... erklärt mir mal, wie ihr eine PAUSE anzeigen lassen wollt. Wie sieht eine Pause denn aus? Was macht man währenddessend und vor allem: WIE LANGE DAUERT DIE??



Mannmannmann... da fragt man sich noch warum aktuelle Websites und deren Scripts so schlecht sind.
Mit Zitat antworten
  #9 (permalink)  
Alt 06-07-2006, 10:59
Chris2k6
 Newbie
Links : Onlinestatus : Chris2k6 ist offline
Registriert seit: Jan 2006
Beiträge: 25
Chris2k6 ist zur Zeit noch ein unbeschriebenes Blatt
Standard

ja sollte er nicht innerhalb der while-schleife NACHDEM er den buffer ausgelesen hat die Pause einbauen?

oder steht ich jetzt auch auf dem schlauch?
Habe sowas noch nie gebraucht
Mit Zitat antworten
  #10 (permalink)  
Alt 06-07-2006, 12:08
jahlives
 Master
Links : Onlinestatus : jahlives ist offline
Registriert seit: Jun 2004
Ort: Hooker in Kernel
Beiträge: 8.279
jahlives ist zur Zeit noch ein unbeschriebenes Blatt
Standard

@topicstarter:
Läuft der Server also unter Windows ? Dann vergiss usleep(). Exisitert auf Win gemäss Manual nicht.
Und wenn du anstelle dessen sleep() verwendest, dann beachte, dass diese Fkt die Pause in Sekunden macht und nicht in Microsekunden. Du hast nicht zufällig bereits sleep() verwendet und wunderst dich, dass der Server für 5000 Sekunden eine Pause einlegt ?

Gruss

tobi
__________________
Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."
Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)
Mit Zitat antworten
  #11 (permalink)  
Alt 07-07-2006, 00:09
tha_specializt
 Newbie
Links : Onlinestatus : tha_specializt ist offline
Registriert seit: Dec 2005
Beiträge: 30
tha_specializt ist zur Zeit noch ein unbeschriebenes Blatt
Standard

mich wundert allerdings, dass er kein "function does not exist" bekommen hat.... Seine Fragestellung ist an sich sehr seltsam und auch fehlerhaft (Server unter IE??? HÄÄ??)

Tip an den Topicersteller:

Lad dir VMWare runter, installiere darauf Linux, installiere Apache (nicht den 2er bitte) + PHP, und teste deine Script dann dort. Eine Unix-Umgebung ist weitaus realistischer, performanter und sicherer als jeder Windoof-Server. Fakt. Dort bekommt man wenigstens auch gescheite Fehlermeldungen (!!)
Mit Zitat antworten
  #12 (permalink)  
Alt 07-07-2006, 00:47
ghostgambler
 Master
Links : Onlinestatus : ghostgambler ist offline
Registriert seit: Jul 2004
Ort: DE - NRW
Beiträge: 4.620
ghostgambler ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
Original geschrieben von tha_specializt
Lad dir VMWare runter, installiere darauf Linux, installiere Apache (nicht den 2er bitte) + PHP, und teste deine Script dann dort. Eine Unix-Umgebung ist weitaus realistischer, performanter und sicherer als jeder Windoof-Server. Fakt. Dort bekommt man wenigstens auch gescheite Fehlermeldungen (!!)
1. apache2.2 ist laut apache selbst die "best available version", wieso sollte man noch mit 1.3 fahren?

2. Wer in einem Satz "Server", "ausführen", "über" und einen Browser nennt, wird es kaum schaffen ein virtuelles OS auf dem Rechner zum Laufen zu bringen, geschweige dessen, dass ich es für ziemlich übertrieben halte zum Programmieren von php Skripten ne vmware zu installieren. Gescheite Fehlermeldungen kriegt man von php auch unter Windows, genauso wie von anderer vernünftig programmierter Software, man muss nur gucken wo man suchen muss (und die Orte sind in den meisten Fällen exakt da, wo sie unter Linux auch wären)
Mit Zitat antworten
  #13 (permalink)  
Alt 07-07-2006, 10:04
wahsaga
  Moderator
Links : Onlinestatus : wahsaga ist offline
Registriert seit: Sep 2001
Beiträge: 25.236
wahsaga befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Original geschrieben von ghostgambler
1. apache2.2 ist laut apache selbst die "best available version", wieso sollte man noch mit 1.3 fahren?
Evtl. wegen der Authenzität eines lokalen Testsystem - einige Webhoster setzen ja auch noch 1.3 ein.

Und außerdem macht PHP 5 mit Apache 2.2.x AFAIK immer noch Probleme, erst letztlich wieder gelesen. Also lieber erstmal 2.0.x
__________________
I don't believe in rebirth. Actually, I never did in my whole lives.
Mit Zitat antworten
  #14 (permalink)  
Alt 07-07-2006, 12:55
tha_specializt
 Newbie
Links : Onlinestatus : tha_specializt ist offline
Registriert seit: Dec 2005
Beiträge: 30
tha_specializt ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Apache 2 hat AFAIK weitaus mehr Sicherheitslücken als der gute alte 1.33 oder Konsorten. Warum? Weniger Funktionen = weniger Angriffspunkte, ganz einfach.
Mit Zitat antworten
  #15 (permalink)  
Alt 07-07-2006, 13:07
tcpip
 Junior Member
Links : Onlinestatus : tcpip ist offline
Registriert seit: Jun 2006
Beiträge: 217
tcpip ist zur Zeit noch ein unbeschriebenes Blatt
Standard Re: Buffering, Flush, Sleep = Problem

Zitat:
Original geschrieben von progman06
Hallo zusammen, bin bei der Socketgeschichte dran
Danke
kannst Du mal die Socketgeschichte etwas erzählen
Danke
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an


PHP News

Projektmanagement Damals und Heute
Projektmanagement Damals und HeuteWerfen Sie einen Blick auf das, was sich verändert hat, und entdecken Sie, wo die Zukunft dieses Gebietes hinsteuert.

18.01.2021 | Berni

Arbeitsmanagement-Tools
Arbeitsmanagement-ToolsWarum jedes Team Arbeitsmanagement-Tools benötigt. Man schätzt, dass 25% eines durchschnittlichen Mitarbeiter-Tages durch ineffiziente Arbeit vergeudet werden.

11.12.2020 | Berni


 

Aktuelle PHP Scripte

Formmailer Bootstrap 4

Mit dem Formmailer kann man sich eMails über seine Seite zukommen lassen.

08.07.2021 arne-home | Kategorie: PHP/ Formular
Fehlerseite Bootstrap 4

Bei Aufruf einer nicht existierenden Seite, teilen Sie Besuchern mit einer eigenen Fehlerseite mit, dass die gewünschte Seite nicht gefunden wurde. Die eigene Fehlerseite sollte dasselbe Design wie die Website haben. Zudem sollte ein Link zur Startseite a

04.07.2021 arne-home | Kategorie: PHP/ Counter
Upload Bootstrap 4

Mit dem PHP - Uploadscript kann man schnell und einfach Bilder und Dateien auf den Webserver hochladen.

04.07.2021 arne-home | Kategorie: PHP/ File
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 18:08 Uhr.