Hallo ihr Lieben,
ich bin noch ganz neu im Thema und kann mit vielen Antworten aus dem großen weiten Netz einfach nix anfangen. Oft fehlt es mir am Verständnis, wo ich den code einfügen muss (php-tag, html oder doch script).. Ich wäre euch daher für eine ausführliche erklärung sehr dankbar.
aber nun mal ganz von vorn... Ich möchte ganz klassisch einen online gruppenchat erstellen.
Ich habe bereits geschafft ein Login zu erstellen und auch das Nachrichten geschrieben und an die DB gesendet werden können. Auch wird beim laden der chat seite (die seite, die nach erfolgreichen Login geladen wird), der bisherige Chatverlauf angezeigt wird. Der div dazu hat auch ein Scrollbalken und es ist automatisch nach unten gescrollt. Die Nachrichten sind nach links ausgreichtet, wenn es nachrichten sind, die nicht vom angemeldeten User stammen. Hat der angemeldete User diese Nachrichten selbst geschrieben, so sind die nachrichten recht ausgerichtet.
Ich finde da habe ich schon recht viel geschaffft.. naja bis auf..... das sich das Div des Chatverlaufs automatisch refresht. Aktuell sieht der Nutzer halt nur ein aktuellen verlauf, wenn er direkt angemeldet wird und danach immer nur dann, wenn er selbst etwas sendet.
Wie nehme ich die automatische aktualisierung vor... ich habe in Zeile 111-118 das script, aber das funktioniert nicht, oder ich bin zu blöd in der anwendung (was mich nicht wundern würde)
hier mal mein bisheriger Code der chat.php
Ich danke euch für jeden hinweis... Ich weiß es ist (noch) schrecklich, da ich alles in einem Dokument habe.. aber das teilen in verschiedene Dokumente möchte ich erst vornehmen, wenn es soweit klappt.
Danke
LG Jenni
ich bin noch ganz neu im Thema und kann mit vielen Antworten aus dem großen weiten Netz einfach nix anfangen. Oft fehlt es mir am Verständnis, wo ich den code einfügen muss (php-tag, html oder doch script).. Ich wäre euch daher für eine ausführliche erklärung sehr dankbar.
aber nun mal ganz von vorn... Ich möchte ganz klassisch einen online gruppenchat erstellen.
Ich habe bereits geschafft ein Login zu erstellen und auch das Nachrichten geschrieben und an die DB gesendet werden können. Auch wird beim laden der chat seite (die seite, die nach erfolgreichen Login geladen wird), der bisherige Chatverlauf angezeigt wird. Der div dazu hat auch ein Scrollbalken und es ist automatisch nach unten gescrollt. Die Nachrichten sind nach links ausgreichtet, wenn es nachrichten sind, die nicht vom angemeldeten User stammen. Hat der angemeldete User diese Nachrichten selbst geschrieben, so sind die nachrichten recht ausgerichtet.
Ich finde da habe ich schon recht viel geschaffft.. naja bis auf..... das sich das Div des Chatverlaufs automatisch refresht. Aktuell sieht der Nutzer halt nur ein aktuellen verlauf, wenn er direkt angemeldet wird und danach immer nur dann, wenn er selbst etwas sendet.
Wie nehme ich die automatische aktualisierung vor... ich habe in Zeile 111-118 das script, aber das funktioniert nicht, oder ich bin zu blöd in der anwendung (was mich nicht wundern würde)
hier mal mein bisheriger Code der chat.php
Code:
<?php
session_start();
?><html>
<head>
<title>Insert/Update-Formular</title>
</head>
<body onLoad='letzteselement.scrollIntoView()'>
<?php
/* --- Datenbank verbinden --- */
if($conn = @mysql_connect("localhost","root","")) {
mysql_select_db("mydb");
/* --- Parameter initialisieren --- */
//$Nickname = "";
//$Nachricht = "";
//$schalter = "";
/* --- Parameter auslesen --- */
extract($_GET);
/* --- Nachrichten Senden--- */
if($schalter=="Senden") {
$user=$_SESSION['username'];
/* --- Abfrage der U_ID --- */
if ($AbfrageUID = mysql_query("SELECT U_ID FROM user WHERE Nickname='$user'")){
while($row = mysql_fetch_assoc($AbfrageUID)) {
$uID=$row['U_ID'];
}
/*--- In DB schreiben --- */
$result = mysql_query
("INSERT INTO inhalt (user1,Time,Inhalt) VALUES ($uID,now(), '$Nachricht')");
//PRINTF("$Nachricht");
}
/*--- Nachrichten empfangen ---*/
} if($schalter=="Empfangen"){
}
}else {
printf
("<p>Fehler beim Verbindungsaufbau zum MySQL server! %s</p>\n",
mysql_error());
}
//mysql_close($conn);
/* --- HTML-Formular ausgeben --- */
?>
<div id="root">
<div id="head">
<?php
$user=$_SESSION['username'];
echo "<h2 align='center'>";
echo "Herzlich Willkommen $user";
echo "</h2>";
?>
<!--<h2 align="center">Herzlich Willkommen im Chat</h2>-->
</div>
<div id="navigation"></div>
<div id="empfangen">
<table>
<form action="" method="get">
<tr><td><h3>Chatverlauf:</h3>
<?php
//extract($_GET);
if ($result = mysql_query("SELECT inhalt.Inhalt, inhalt.time, inhalt.user1, user.Nickname FROM inhalt INNER Join user on inhalt.user1= user.U_ID")){
echo "<div name='chatverlauf' id='chatverlauf' style='width:300px;height:150px;line-height:1em;overflow:auto;padding:5px;'>";
while($row = mysql_fetch_assoc($result)) {
$nickname=$row['Nickname'];
$ausgabe=$row['time']. $row['Nickname'].'<br>'.$row['Inhalt'];
if ($nickname == $user){
echo "<p align='right'>";
echo $ausgabe;
echo "</p>";
}else{
echo "<p align='left'>";
echo $ausgabe;
echo "</p>";
}
}
echo "</div>";
}
?>
</td></tr>
<tr><td>
<input name="schalter" type="submit" value="Empfangen">
</td></tr>
</form>
</table>
</div>
<!--Nachrichten senden -->
<div id="senden">
<table>
<form action="" method="get">
<!--<tr><td>Nickname:<br>-->
<!--<input name="Nickname" type="text" value=""></tr></td>-->
<tr><td>Nachricht schreiben:<br>
<input name="Nachricht" type="text" value="">
</td></tr>
<tr><td>
<input name="schalter" type="submit" value="Senden">
</td></tr>
</form>
</table>
</div>
</div>
<!--Javascript -->
<script type="text/javascript">
<!-- automatisch nach Unten scrollen)-->
document.getElementById('chatverlauf').scrollTop = 9999999;
<!-- automatisch updaten von div Chatverlauf/empfangen-->
window.setInterval(function(){
$( "#empfangen" ).load(window.location.href + " #empfangen" );
},1000);
</script>
<?php mysql_close($conn);?>
</body>
</html>
Ich danke euch für jeden hinweis... Ich weiß es ist (noch) schrecklich, da ich alles in einem Dokument habe.. aber das teilen in verschiedene Dokumente möchte ich erst vornehmen, wenn es soweit klappt.
Danke
LG Jenni