-
Chat mit PHP realisieren
Hallo,
seit einiger Zeit beschäftige ich mich schon mit PHP und wollte nun mal einen Chat realisieren. Er soll eigendlich ganz einfach sein.
Ich bin so vorgegangen:
1. ein formular zur eingabe des Textes
2. per submit wird ein eintrag in die datenbank gemacht
3. nachricht erscheint in einem div unterhalb des eingabefeldes
Nur leider bin ich auf folgende Probleme gestoßen:
Abgesehen davon dass ich sicher nen cronjob oder sowas machen werde damit die einträge mit der zeit auch wieder gelöscht werden, werden die daten aus der datenbank nur EINMALIG per Seitenaufruf aktualisiert. Wenn ich nen Refresh Tag einbaue, refresht sich leider auch die ganze Seite mit. Mit dem Submit Formular ist das das gleiche. Da läd auch die ganze Seite nochmal neu.
Wie schaff ich es also dass immer wenn ein neuer eintrag in die datenbank gemacht wird, dass der client auch etwas davon mitbekommt und sich der chat aktualisiert (ohne hässlichen refresh von der ganzen seite).
wäre nett wenn ihr mir helfen könntet.
P.S. will kein fertiges script irgendwo runterladen.
Danke mfg pousty
-
Ich werf einfach mal das wörtchen "Ajax" in den Raum ;)
Is zwar kein PHP aber allein mit PHP wirst du das nicht realisieren können Ajax ist da die Optimale Lösung
-
Genau, deswegen brauchst du auch keinen Cronjob. Lade die Informationen per Ajax einfach nach, dann ist so ein Chat kein Problem mehr.
-
Naja mit PHP könnte man das auch machen.
1. Textbox erstellen
2. Eine div box unterhalb der Textbox erstellen
3. Ein javascript reinpacken das es immer aktualisiert
4. Ein submit button
und fertig
Also so stell ich es mir vor.
-
Also benutzt du eine Art Ajax, du kommst um Ajax nicht herum.
-
Danke für die Infos, aber nach langem Suchen im Netz und nach mehreren Tutorials, habe ich es nicht geschafft, wenigstens ansatzweise irgendwas hinzukriegen. Nichts stimmt mit dem überein, was ich machen möchte.
Ich bräuchte lediglich eine abfrageschleife, die alle paar sekunden die datenbank nach neuen einträgen überprüft. Dies auch ohne, dass die komplette Seite neu lädt.
Das können doch eigentlich nicht soviele Codezeilen sein, oder? hat nicht jemand sowas wie ein muster?
Danke
pousty
-
-
danke, das tut hat mir wirklich geholfen..jetzt hab ich aber ein anderes problem. immer wenn man seine nachricht submittet dann ist der komplette chat history für ein paar sekunden weg..und läd neu..kann man das iwie unterbinden..dass er erst wenn alles geladen ist die history mit der neuen nachricht anzeigt? sone art preload oder so..
-
Das die Histroy weg ist, ist normal. Er ladet ja die komplette Shoutbox neu. Ansonsten müsstest du den preload ans Ende setzen.
//Edit: Musst dir das hier:
PHP-Code:
//aktuelle Daten laden
loadData();
//alle 5 Sekunden neue Daten holen
setInterval("loadData()",5000);
und das hier anschauen:
PHP-Code:
function loadData()
{
if (xmlHttp) {
xmlHttp.open('GET', 'getdata.php', true);
xmlHttp.onreadystatechange = function () {
if (xmlHttp.readyState == 4) {
document.getElementById("asb_content").innerHTML = xmlHttp.responseText;
}
};
xmlHttp.send(null);
}
}
-
naja suche auch php chat aber mit webcam solte ganz esay sein und über red5 server laufen wenn ihr ide habt könnt ihr mit ja helfen ^^