Seite 1 von 3
PHP bzw JS: Chat
Verfasst: Do Jul 15, 2010 9:27 pm
von naums
Ich will eine Chat Homepage schreiben. (PHP/JS; der HTML teil is ja das einfachste) Ne Idee zum prinzip hatte ich dazu auch schon.
1. Einloggen im Chat: Eine Datei (mal chat.txt genannt) wird ausgelesen, dann Usernames, daten und Text zugeordnet und ausgegeben.
2. Schreiben: Die Datei chat.txt wird um das verändert was man selbst schreibt.
--> Aber jetzt muss ein Reload erfolgen, damit man auch das mitlesen kann was man selbst schreibt, ohne warten zu müssen, dass andre etwas schreiben.
3. Andre schreiben etwas. Also muss in intervallen die Datei chat.php abgefragt werden. bzw. Reloaded werden, wobei ich nicht genau weiß wie hoch diese Abtastrate sein sollte.
Ich brauche: ne möglichkeit die chat.php dynamisch zu laden (vom SERVER! Die Datei liegt auf dem Server, nicht auf einem Client.) bzw. aller X Sekunden die Datei abzufragen.
Und ich brauche ne möglichkeit, die Datei möglichst kurz zu halten, kp, 5KB oder so sollten reichen für einen Chat.
Kann mir einer von euch helfen?
Re: PHP bzw JS: Chat
Verfasst: Do Jul 15, 2010 10:32 pm
von Xin
naums hat geschrieben:Ich brauche: ne möglichkeit die chat.php dynamisch zu laden (vom SERVER! Die Datei liegt auf dem Server, nicht auf einem Client.) bzw. aller X Sekunden die Datei abzufragen.
Und ich brauche ne möglichkeit, die Datei möglichst kurz zu halten, kp, 5KB oder so sollten reichen für einen Chat.
Kann mir einer von euch helfen?
Ich würde hier vermutlich mit Hilfe von AJAX in sehr kurzen Abständen den Server fragen, ob es in meinem Chat etwas Neues gibt.
Wenn möglich würde ich dem Server beibiegen, dass er sich mit der Antwort Zeit lassen kann... solange er nicht antwortet, gibt's nix Neues.
So nach 5 Sekunden kann man dann mal "Nopes, nix Neues" antworten und der Client muss neu fragen.
Der Client kann bei einem HTTP-Chat nicht informiert werden, dass er was neues zu laden hat. Er muss also immer selbst neuladen und gucken, ob sich was geändert hat.
Re: PHP bzw JS: Chat
Verfasst: Fr Jul 16, 2010 11:56 am
von naums
okay. muss aber da die ganze seite neu geladen werden, oder gibts einen Befehl dafür, dass der Client die Datei chat.txt neu abfragt, und nur dann das neu ausgibt, was auf der basiert?
Re: PHP bzw JS: Chat
Verfasst: Fr Jul 16, 2010 4:44 pm
von Dubbel
Guck dir mal
http://proggen.org/doku.php?id=ajax:first_steps an.
Du kannst per AJAX die chat.txt aufrufen und in z.B. in einem Div deiner Wahl ausgeben lassen. Das ist relativ ressourcenschonend, da keine PHP-Datei interpretiert werden muss.
Natürlich musst du, wenn der User Javascript deaktiviert hat auf
zurückgreifen.
Re: PHP bzw JS: Chat
Verfasst: Sa Jul 17, 2010 6:59 am
von Dominik
Was spricht den gegen einen IRC chat?
mfg
Re: PHP bzw JS: Chat
Verfasst: Sa Jul 17, 2010 9:35 am
von Xin
Dominik hat geschrieben:Was spricht den gegen einen IRC chat?
Die Frage finde ich gut...
IRC, Skype, MSN, Web???
Re: PHP bzw JS: Chat
Verfasst: Sa Jul 17, 2010 11:17 am
von naums
... gesundheit?
Mal im Ernst: Ich will meine Seiten komplett selbst schreiben, deshalb nehme ich auch kein CMS sondern schreibe meine Seiten selbst, und nehme auch kein vorgefertigtes Forum, sondern schreibe das auch selbst, weil es mir spaß macht

Re: PHP bzw JS: Chat
Verfasst: Sa Jul 17, 2010 11:53 am
von Xin
naums hat geschrieben:weil es mir spaß macht

Der sinnvollste Grund zu programmieren.

Re: PHP bzw JS: Chat
Verfasst: So Jul 18, 2010 8:18 pm
von naums
okay... ich hab mal experimentiert.
Folgender Code:
Code: Alles auswählen
<SCRIPT type="text/javascript">
time = 0;
function prepare()
{
time=2;
chatload();
}
function chatload()
{
if (time == 0)
{
load_file('chat.txt', 'chat');
prepare();
}
if (time > 0)
{
setTimeout('chatload()',1000);
}
time--;
}
chatload();
</SCRIPT>
<a href="javascript:load_file('chat.txt','chat');">[REFRESH]</A>
<div id="chat" height="500px" width="100%" overflow="auto"></div>
<form method="post" action="changeChat.php">
<pre>
<P>Ihr Eintrag: <BR /> <input type="text" name="chat" value=""></P>
<input type="submit" name="submit" value="Abschicken">
</pre>
</form>
In der Chat.txt steht bissl was drinne 30 Byte mehr net. Trotzdem friert der FF ein. Was kann ich dagegen tun? Liegt das am JS setTimeout?
Re: PHP bzw JS: Chat
Verfasst: So Jul 18, 2010 10:12 pm
von naums
okay. geht jetzt.
Folgender Code (das Formular wird überprüft):
Code: Alles auswählen
<?php
if (is_array($_POST))
{
$post=$_POST;
}
else
{
$post=$HTTP_POST_VARS;
};
if (isset($post["chat"]))
{
$text=$post["chat"];
}
else
{
$text=NULL;
};
$db=new mysqli("localhost", "naums", "letsfetz", "naums-project");
include("chklogin.php");
if ($login!=NULL and $text!=NULL)
{
$file=fopen("chat.txt", "w+");
if (filesize("chat.txt")==0)
{
$size=1;
}
else
{
$size=filesize("chat.txt");
};
$FileText=fread($file, $size);
$time=date("H:i:s", time());
$NewText='['.$time.'] '.$login.' : '.$text."<BR />\n".$FileText;
fwrite($file, $NewText);
fclose();
header("location:index.php?position=chat");
}
else
{
header("location:index.php?position=chat");
};
?>
chat.txt ist keinesfalls leer, aber warum ist filesize("chat.txt") leer? Mittels die() ausgegeben, aber es wurde nichts ausgeben. Wo liegt der Fehler? filesize("chat.txt") sollte eigentlich ne Größe ausgeben. tuts aber net. chat.txt ist in dem Ordner. Was is falsch?