AW: such leute für meine projekt...
Also ein Chat gehört zu den wenigen dingen, die mit PHP einfach nicht machbar sind.
Das liegt daran, dass jede anfrage für jeden Benutzer eine eigene "unabhängige" programmausführung bekommt. Ist die seite fertig übertragen, wird diese ausführung beendet. (Jeder benutzer hat praktisch einen eigenen thread, der nichts von den anderen threads weiß, um das mal informatischer auszudrücken)
Wenn du zwei frames hast - ein chatfenster und ein nachrichtenschreibfenster, dann wissen auch diese beiden Frames nichts voneinander - zumindest in den augen von PHP. Insofern bekommst du deine Nachrichten GARNICHT in das chatfenster. Es sei denn du machst permanente reloads.
Chatserver sind in der regel keine HTTP Server, die nur statuslose verbindungen kennen und wo es keine kommunikation zwischen den einzelnen benutzerthreads gib, sondern entweder selbstgeschriebene module für einen Webserver oder sogar gänzlich selbstgeschriebene Server. Dass diese HTML ausgeben ist aber auch schon fast die einzige ähnlichkeit mit einem Webserver.
Wenn du einen Chat machen willst, musst du einen Benutzerverwalter haben - du musst ständig eine offene Verbindung zu allen usern im chatraum haben. Über diese Verbindung schickst du neue nachrichten hinaus, wenn du welche bekommst. Die HTML seite wird dabei dann "Gestreamt" d.h. sie hört niemals auf zu laden - sie lädt in einem fort weiter herunter, nur die website geht quasi nie zu ende.
Was weitere probleme gibt. Du musst beispielsweise immer etwas senden, auch wenn niemand spricht, denn sonst sagt der Browser, dass er keine daten mehr vom Server empfangen hat und kappt die verbindung, wodurch der benutzer aus dem chat geworfen wurde.
Um es kurz zu machen: Vergiss PHP, vergiss Javascript, vergiss Perl. Vergiss am besten alles, was mit Apache zu tun hat. (wobei ich bin überzeugt, dass man soetwas mit Servelets hinbekommen würde) Wenn dir das problem nicht klar ist/war dann verfügst du auch noch nicht über die fähigkeiten, die notwendig sind, einen browser chat aufzuziehen. Verfügst du dennoch darüber hast du noch immer das problem, dass sicherlich kein Provider das ausführen von eigenen Programmen in einem Webspace erlaubt.
|