Biebertal Community Board (http://verein.isolani.de/wbb2/index.php)
- Sonstiges (http://verein.isolani.de/wbb2/board.php?boardid=31)
-- Technik und Tools (http://verein.isolani.de/wbb2/board.php?boardid=22)
--- PHP - Pearl Hypertext Preprocessor (http://verein.isolani.de/wbb2/thread.php?threadid=24)


Geschrieben von Qndre am 15.04.2003 um 13:15:

smile PHP - Pearl Hypertext Preprocessor

Peal Hypertext Preprocessor klingt ziemlich powerful. Iss bestimmt auch.
An PHP ist auch was.
Naja... Also Chat oder so - aber braucht ja immer Refresh bei Datentransfer - das könnte noch besser gemacht werden.
Wie PHP schreiben, dass die Seite immer aktuell bleibt ohne Aktualisieren (Message Window i. Chat)

Hab zwar schon Chat geschrieben aber eben mit Flimmern wegs Refresh.



Geschrieben von Qndre am 15.04.2003 um 13:16:

Lampe RE: PHP - Pearl Hypertext Preprocessor

Ich glaube die Bedeutung dieses Threads kommt nicht so ganz durch. Ich möchte wissen, wie ich eine Website immer "up to date" halte, ohne sie zu aktualisieren (weder manuell noch mit <META HTTP-EQUIV>)
Wenn das jemand weiß, dann RESPEKT!! großes Grinsen



Geschrieben von cammert am 16.04.2003 um 10:33:

  RE: PHP - Pearl Hypertext Preprocessor

Hmm, manchmal hilft es, sich mal gedanken darueber zu machen, wie das alles so funktioniert. PHP ist eine Serverseitige Skriptsprache, die html-Seiten erzeugt. Und in diesen html-Seiten kann auch nichts prinzipiell anderes stehen, als in einer statischen auch. Fuer den automatischen Reload musst Du also die selben Techniken einsetzen.

Die Frage, wie man automatischen Reload mit PHP erzeugt ist ungefaehr so als wuerde ein Drucker sagen, ich habe mir jetzt die neueste Druckmaschine gekauft, wie drucke ich damit eine Zeitung, die sich selber aktualisiert.

Automatische Aktualisierung ist ein typischen Problem von Livetickern. Die beutzen ueblicherweise das meta-Tag mit dem Reload oder ein Java-Applet.



Geschrieben von Qndre am 16.04.2003 um 12:44:

  RE: PHP - Pearl Hypertext Preprocessor

Also nun mal Moment.
Ich habe schon viele PHP basierte Chats gesehen. Dass es nicht so ohne weiteres geht, eine Seite up-to-date zu halten, ohne sie zu aktualisieren ist mir klar.
Aber es muss eine Möglichkeit geben.
Ich habe mir einmal folgenden PHP-basierten Chat angesehen: MainChat
Der Chat basiert zu 100% auf PHP4.
Die Seite, in der der Chatinhalt steht wird nie aktualisiert, ist aber immer up-to-date.
Vielleicht weiß jemand von euch, wie das geht.
Ist bei fast allen Chats so: Es wird nie aktualisiert und trotzdem steht immer das neueste drin.
Chef vom Qndretreff (DJalpha)



Geschrieben von Andi am 16.04.2003 um 13:24:

  RE: PHP - Pearl Hypertext Preprocessor

Also, im MainChat Raum Header steht

<SCRIPT LANGUAGE=JavaScript>
setInterval("window.scrollTo(1,300000)",100)
</SCRIPT>

Sieht mir nicht nach einer Sonderlösung aus.



Geschrieben von cammert am 16.04.2003 um 14:54:

RE: PHP - Pearl Hypertext Preprocessor

> Die Seite, in der der Chatinhalt steht wird nie
> aktualisiert, ist aber immer up-to-date.

großes Grinsen großes Grinsen großes Grinsen

Aha. Dann sagt in dem Chat also nie irgendwer was?

Die Post stellt ja bekanntlich auch Kleidung her, denn es gibt dutzende von Seiten im Internet, auf denen man Kleidung per Post bestellen kann...

Also nochmal langsam zum Mitschreiben. PHP ist eine Skriptsprache, deren Programme auf dem Server irgendwas erzeugen, was dann an Deinen Webbrowser gesendet wird. Der soll dann, so Dein Wille, die Seite aktualisieren. Webseiten bezieht er aber per http, und bei diesem Protokoll muss immer der Client was anfordern, was der Server dann liefert. Was immer Du auf Serverseite mit php erzeugen kannst, koenntest Du auch irgendwie anders auf dem Server erzeugen. PHP hat also nichts damit zu tun, ob Deine Seite sich nun neu laedt.

Das automatische Aktualisieren muss Dein Browser, also der Client erledigen. Dass kann ueber eine Clientseitig ausgefueherte Sprache wie Java oder Javaskript (siehe Andis Beitrag) gehen, oder ueber dieses META-Tag, das Du nicht willst.

Wenn Du so viele Seiten kennst, die das so machen, wie Du es haben willst, warum schaust Du Dir nicht einfach im Quelltext an, wie die es anstellen?

Vielleicht benutzen die ja Frames umd laden nur den jweiligen Text mit dem Frame jeweils neu.



Geschrieben von Qndre am 16.04.2003 um 16:56:

  RE: PHP - Pearl Hypertext Preprocessor

setInterval("window.scrollTo(1,300000)",100)

Habe ich auch im Chat.
Bedeutet: Sorge dafür, dass das Chatfenster immer ganz nach unten gescrollt wird.



Geschrieben von Qndre am 16.04.2003 um 17:01:

  RE: PHP - Pearl Hypertext Preprocessor

Es ist schon klar, dass die HTML Befehle vom Client ausgeführt werden und nicht das PHP zeugs. Die HTLM-Header aktualisieren den Chat. Schon klar. Eine Lösung wäre, dass Du den Browser sagst: "Die Seite ist in 10.000 Jahren komplett heruntergeladen also lasse so lange die Verbindung offen." und der Browser fordert die Seite eben so lange an, bis er geschlossen wird. Somit brauchst Du die Seite nicht aktualisieren, weil er die Seite ja eh endlos läd. Lässt sich das verwirklichen oder nicht?
_
Außerdem: Fast kein Chat aktualisiert seine Nachrichtenseite (die, wo die Nachrichten anderer Nutzer angezeigt werden). Trotzdem zeigt er immer das neueste. Ich kenne einen Chat, der scrollt beim Refresh immer ganz hoch (und zwar fließend / langsam) und wieder runter (auch langsam). Also würde es auffallen, wenn er aktualisieren würde. Er tut es aber nicht. Er scrollt eben laufend. Aber immer abwärts, nie aufwärts. Das bedeutet: Der Server sendet und sendet und sendet und wird niemals mit dem Senden fertig. Der Client muss nie etwas neues anfordern, weil der Server ja ewig sendet.



Geschrieben von Qndre am 16.04.2003 um 17:07:

  RE: PHP - Pearl Hypertext Preprocessor

Achso. Quelltexte ansehen ist nicht so einfach. Ich kann die serverbasierten Quelltexte nicht einsehen. Nur das Erzeugnis von ihnen (das HTML, was dann an den Client gesendet wird).



Geschrieben von Qndre am 16.04.2003 um 17:12:

 

Oh - und nochmal:
Hey, Morgan. Soll ich Dir mal die PHP-Quelltexte schicken?
Ich meine von meinen Chat?



Geschrieben von Qndre am 16.04.2003 um 19:45:

 

Das ist nu erstmal wahrscheinlich mein letzter Beitrag bevor jemand antwortet aber ich glaube es ist ganz hilfreich, wenn ihr euch mal das anschaut. Vielleicht hilft euch das was - weiterhin bin ich für jeden noch so kleinen Hinweis dankbar.
Chef vom Qndretreff Freude

<€dit by Morgan: Dein Beitrag ist verschoben von "php" zu "Javascript" Zunge raus , also jetzt hier zu finden. Ja, schick mal die php Dingens gezippt, und sag, welche unix Rechte ich setzen muss. Werd mal auf meinen Server laden>



Geschrieben von Andi am 16.04.2003 um 22:19:

  RE: PHP - Pearl Hypertext Preprocessor

Zitat:
Original von Qndre
Der Server sendet und sendet und sendet und wird niemals mit dem Senden fertig. Der Client muss nie etwas neues anfordern, weil der Server ja ewig sendet.


Hast du gut erklärt.

Glaube nicht, dass so etwas mit php geht. Der Interpreter auf dem Server kann ja nur aus einer fertigen php Seite ein html- Dokument generieren und an den Browser schicken.



Geschrieben von cammert am 17.04.2003 um 01:40:

  RE: PHP - Pearl Hypertext Preprocessor

Zitat:
Der Server sendet und sendet und sendet und wird niemals mit dem Senden fertig. Der Client muss nie etwas neues anfordern, weil der Server ja ewig sendet.


Da hast Du die prinzipielle Taktik beschrieben, wie man eine http-Verbindung dahingehend ueberlistet, dass der Server senden kann. Leider hat das ein paar Haken. Zum einen gibt es sowas wie timeouts, weshalb man regelmaessig was senden muesste (hat was mit http 1.0 Altlasten zu tun). Zum anderen besteht html immer aus oeffnenden und schliessenden Tags. Ein Browser muss eigentlich gar nichts darstellen, bevor er das </html> gesehen hat, es hat sich nur eingebuergert, die Browser so zu bauen.

Ich habe mir mal einen dieser mit MainChat implementierten Chats angesehen.

1. Die eigentlichen Texte der Chatter erscheinen in einem eigenen Frame, wie ich unten ja schon vermutet hatte. Das verraet auch schon ein einfacher Blick in den Quelltext oder ein Rechtsklick und das Laden des Frames in einem eigenen Fenster. Daher wird der Rest immer angezeit, da der Rand statsich geladen wird.

2. Der Chatframe wird scheinbar tatsaechlich gestreamt, sieht man daran, dass beim Darueberfahren die Maus die Sanduhr anzeigt, sprich der Frame nie fertig geladen ist (WESHALB DER BROWSER GAR NICHTS ANZEIGEN MUESSTE).

3. Man beachte auch, dass es fuer die Liste der Chatteilnehmer einen expliziten "Aktualisieren" Knopf gibt ...



Geschrieben von cammert am 17.04.2003 um 01:46:

Achtung Ok, zwei Blicke in die PHP-Doku, dann konnte ich es nachbauen.

Zunaechst nochmal der Hinweis, dass das nur funktioniert, da heutige Browser auch teilgeladene Seiten anzeigen. Ich habe die Prinzipien von http und html schon zu einer Zeit gelernt, als das noch nicht ueblich war, und deshalb reite ich halt auf sowas rum. Augen rollen
Ich finde es halt wenig sinvoll Seiten zu bauen, die nur aufgrund von ungarantierten Browsereigenschaften funktionieren.
Ich z.B. benutze Mozilla unter Win XP, waehrend Qndre ja IE traurig unter Win 98 empfiehlt großes Grinsen

Der Trick ist, php dazu zu bringen, die unfertige Seite schonmal zu senden. So ein Befehl heisst ueblicherweise flush, in php auch ...

Danach wartet man ne Weile, der Befehl heisst sleep, und sendet dann die naechste Zeile.

Hier der Testcode:

php:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:

<html>
<head>
</head>
<body>
Zeile 1 <br>
<?php
  flush();
  sleep(5);
?>
Zeile 2 (5 Sekunden spaeter)
</body>
</html>


Ausprobieren HIER

Ich hoffe, damit ist Dir geholfen, auch wenn ich das Prinzip nicht wirklich gut finde. Auch ist zu beachten, dass der Server dadurch sehr belastet wird, dass er die Verbindungen offen laesst.



Geschrieben von Qndre am 17.04.2003 um 09:09:

  RE: Ok, zwei Blicke in die PHP-Doku, dann konnte ich es nachbauen.

Hey, Cammert.
Hab Deine PHP Beispielseite unter der URL aufgerufen. Die Seite wird zwar 2 Sekunden lang geladen, aber deshalb erscheinen doch beide Zeilen gleichzeitig. *lach
Außerdem habe ich beim jetzigen Chat (der andauernd aktualisiert) auch keine schließenden </HTML>-Tags. Nicht mal der <P> und der <BODY> werden geschlossen, weil das technisch schwieriger ist.



Geschrieben von Qndre am 17.04.2003 um 09:11:

  RE: Ok, zwei Blicke in die PHP-Doku, dann konnte ich es nachbauen.

Beitrag aus einem anderen Forum von Qndre:
_
Wie halte ich eine PHP Website immer up to date ohne sie zu aktualisieren?
Ich habe einen Chat geschrieben aber das Nachrichtenfenster flimmert andauernd aufgrund des automatischen Aktualisierens. Ich brauche ein Script (wenn möglich sogar j@vascript statt PHP) welches immer die neueste Version der Seite im Browserfenster anzeigt, ohne dass der Browser aktualisiert.
Wenn ihr jetzt sagen wollt: "Das geht ja garnicht!!" dann schaut euch erstmal folgenden PHP-Basierten Chat an: http://www.mainchat.de
Die Seite, in der die Chatnachrichten angezeigt wird wird niemals aktualisiert, es werden aber immer die neuesten Nachrichten angezeigt.
Sowas brauche ich.
Also kein Refresh mit JavaScript, kein Refresh mit META-TAG, kein Refresh mit HEADER oder DHTML, sondern überhaupt kein Refresh. Die Seite soll aktuell sein, OHNE sie zu aktualisieren.
_
_
Beitrag von aus einem anderen Forum von Phil:
_
Ne Lösung weiß ich auch nicht, aber schau dir mal http://phpchat.sourceforge.net an, da ist n Chat, der eben das kann, was du möchtest.
_
Nimm den Code auseinander und fertig ist.
Und wir glauben dir, dass es auch ohne refresh geht. Wir (oder zumindest ich) sind auch Chatter und kennen solche Chats. N besseres Beispiel wäre auch die Cassiopeia-Software, eingesetzt auf giga.de oder topwebmaster.net
_
_
Beitrag aus einem anderen Forum von Qndre:
_
Wow!
Danke, aber ich glaube ich verstehe den Chat nicht so ganz. Sämtliche Seiten sind von PHP generiert. Keine der HTML-Seiten gibt es physikalisch auf dem Server. (falls jetzt jemand denkt: "Was hat das mit Physik zu tun?" dann möchte ich hier ergänzend anmerken: "Physikalisch ist im PC-Bereich das Gegenteil von Virtuell (z.B.: eine Physikalische Addressierung ist die Addressierung bei der angegeben wird, WO ETWAS WIRKLICH LIEGT und nicht wo die Software es ablegt und später wiederfindet). Meine Ausgabedatei liegt Physikalisch auf dem Server. Jetzt werden einige von euch sich bestimmt fragen: "Ja mai - wie geht denn das? Die Datei ist (relativ) statisch auf dem Server, wird eigentlich nicht von PHP generiert in dem Sinne." Das ist einfach. Ich hänge unten an das Dateiende mit dem PHP Append-Befehl den von Usern eingegebenen Chatsatz an. Das einzige, was an der Ausgabeseite PHP ist ist das Script, welches die Header erzeugt, weil diese veränderlich bleiben müssen. Ich muss also praktisch eine HTML-Seite verändern und (vielleicht die relativ statische Seite als Frame genommen und im Frameset ein PHP-Script oder so) sie immer aktuell halten, OHNE dass der Browser aktualisiert. (weder mit META-TAG noch manuell).
_
_ENDE EINGESCHOBENER BEREICH



Geschrieben von Qndre am 17.04.2003 um 11:42:

  Re: PHP - Pearl Hypertext Preprocessor

Hey, Morgan!!
Ich habe Dir die Quelltexte und die "Apache Group"-Konfiguration an Deine im Forum angegebene Email-Addresse geschickt. Die Aufgaben der einzelnen Module (übrigens alle selbst entworfen - keins geklaut) habe ich in der Email beschrieben. Bei Dir müssten 44 Quelltextmodule angekommen sein.
Qndre.



Geschrieben von Qndre am 17.04.2003 um 12:17:

  RE: PHP - Pearl Hypertext Preprocessor

Ich hätte noch eine allerletzte Notlösung . Sollte es irgendwie anders gehen (durch HTML oder PHP) so werde ich diese Lösung nicht anwenden. Ich könnte vielleicht in die Seite ein Active-X-Plugin einbauen, welches die Seite auf dem Client verändert. Das heißt das Chatfenster liegt garnicht mehr auf dem Server. Der Client lädt die letzte Chatzeile herunter und hängt sie an. Das Chatfenster verweist nun auf eine Datei auf dem lokalen PC. Das ist leider daher nicht gut, weil man lokale Dateien auch aktualisieren muss. Hmmm... Keine Ahnung! Das wäre eventuell noch die letzte Notlösung. Wahrscheinlich würde ich den Chat aber lieber ruckeln lassen, als ActiveX zu verwenden. Mal sehn... Falls da jemand einen Rat hat, dann wäre das zumindest nicht total unnütz. großes Grinsen



Geschrieben von cammert am 17.04.2003 um 12:27:

  RE: Ok, zwei Blicke in die PHP-Doku, dann konnte ich es nachbauen.

Zitat:
Original von Qndre
Hey, Cammert.
Hab Deine PHP Beispielseite unter der URL aufgerufen. Die Seite wird zwar 2 Sekunden lang geladen, aber deshalb erscheinen doch beide Zeilen gleichzeitig. *lach


Liest hier eigentlich irgendwer, was ich schreibe, und gibt sich ernsthaft Muehe, das zu verstehen? Ich habe deutlich gesagt, dass meine Testseite ungarantierte Eigenschaften des verwendeten Browsers ausnutzt und daher nicht bei jedem funktionieren muss. Bei mir (Mozilla 1.3) gehts einwandfrei.

Zitat:
Original von Qndre
Außerdem habe ich beim jetzigen Chat (der andauernd aktualisiert) auch keine schließenden </HTML>-Tags. Nicht mal der <P> und der <BODY> werden geschlossen, weil das technisch schwieriger ist.


Ok, Damit gibst Du aber zu, dass ein Browser da gar nichts anzeigen muesste. Augen rollen



Geschrieben von Qndre am 17.04.2003 um 12:33:

Pfeil RE: Ok, zwei Blicke in die PHP-Doku, dann konnte ich es nachbauen.

Stimmt - das geb ich damit zu. Ist das schlimm? großes Grinsen


Forensoftware: Burning Board 2.3.6 pl2, entwickelt von WoltLab GmbH