Also gestestet habe ich es mit IE 8,9 Google crome, Firefox, Opera und Safari.
funktionieren tut es überall.
und das es ziemlich resourcen lastig ist habe ich mitlerweile schon bemerkt wir haben ihn mal getestet mit 15 leuten und da ging bei manchen die ladezeit hoch ohne ende...
wie mache ich das so das er nur dann abfragt wenn was neues gepostet wurde... die sql abfrage zu erstellen ist ja nicht das problem bei mir harkt es am ajax
Ich hab mal nen bisi weitergemacht.
komme nun aber wieder nicht mehr weiter.
bekomme die Funktionen nicht richtig hin.
Zur Zeit sieht mein script so aus;
Der Eigentliche Chatroom:
PHP Code:
<?php
session_start();
include('inc/config.inc.php');
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de" lang="de" dir="ltr">
<head>
<title>Chat Box</title>
<!-- Contents -->
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<link rel="stylesheet" type="text/css" href="res/template.css" media="screen" />
<script type = "text/javascript">
var rq;
send();
function send()
{
}
function checknew()
{
}
function get()
{
rq = new XMLHttpRequest();
rq.open("get", "getchat.php", true);
rq.send(null);
rq.onreadystatechange = auswerten;
window.setTimeout(get, 10000); /* Soll später wieder hier raus und bei send reinkommen*/
}
function auswerten()
{
if(rq.readyState == 4 && rq.status == 200)
document.getElementById("chatshowbox").innerHTML = rq.responseText;
}
</script>
</head>
<body topmargin="0" leftmargin="0" style="background-color: #000000;">
<br>
<div border=1; style="background-color: #FFFFFF; width: 250px; height: 50px;><font size='2'>
<span id="loggedin">Logged in as <b><?php echo $_SESSION['user']; ?></b></span><br>
<a href="chat.php">Refresh</a> <a href="./../account.php">Zurück</a>
</font></div>
<?php
odbc_exec($mssql, 'USE [WEBSITE_TCR_DBF]');
if(isset($_POST['ok'])) {
if($_POST['post'] == '') {
echo '<div class="fail">You must fill-in all fields!</div>';
} else {
odbc_exec($mssql, 'INSERT INTO [web_shoutbox](username, post, datetime) VALUES(\''.mssql_escape_string($_POST['uname']).'\', \''.mssql_escape_string($_POST['post']).'\', \''.date('d.m.Y H:i:s').'\')');
}
}
echo'<div id = "chatshowbox"><font size="2">';
echo'</font></div>';
echo '</table>';
echo '<span id="text"></span>';
echo '<form method="post">';
echo '<input type="hidden" name="uname" value="'.$_SESSION['user'].'" />
<table id="table"><center>
<tr>
<td id="key"></td>
<td id="value"><textarea name="post" style="width: 400px; height: 15px;"></textarea></td>
</tr>
<tr> <td id="key"></td>
<td id="value"><input type="submit" name="ok" value="OK" onclick="send();"></td>';
echo'</tr>
</center></table>
</form><br/>';
?>
</body>
</html>
Hier ist die getchat.php wird bereits durch die funktion get() aufgerufen
PHP Code:
<?php session_start();
include('inc/config.inc.php');
odbc_exec($mssql, 'USE [****_DBF]');
echo ' <div id="box"></div>
<table id="table" style="width: 900px; height: 200px; background-color:#FFFFFF;" "border-width:thick; padding:5px; border-color:#000000;
border-style:ridge;">
<tr>
<td id="key" style="width:90%;"></td>
<td id="key" style="width:10%;"></td>
</tr>';
$select = odbc_exec($mssql, 'select * from (select top 10 * from [web_shoutbox] order by nid Desc) as a Order by nid ASC');
while($result = odbc_fetch_array($select)) {
echo '
<td id="value" style="width:700px;">'.$result['username'].': '.$result['post'].'</td>
<td id="value" align="right">'.date('G:i', strtotime($result['datetime'])).'Uhr '.date('d.m.y', strtotime($result['datetime'])).'</td>';
echo'</tr>';
}
?>
die Checknew.php soll mit der function checknew() gestartet werden
PHP Code:
<?php
include('inc/config.inc.php');
odbc_exec($mssql, 'USE [*****_DBF]');
if(isset($_GET['nid'])){
$get=($_GET['nid']);
$select = odbc_exec($mssql, 'SELECT top 1 nid FROM [web_shoutbox] ORDER BY nid DESC');
if(odbc_result($select, 'nid') !=$get) {
echo '<script language="JavaScript"><!--send;();// --></script>';
} else {
echo '<script language="JavaScript"><!--get();// --></script>';
}else{
echo '<script language="JavaScript"><!--send();// --></script>';
}
?>
und die letzt die getnid.php soll mit der function Send() abgefragt werden
PHP Code:
<?php
include('inc/config.inc.php');
odbc_exec($mssql, 'USE [****_DBF]');
$select = odbc_exec($mssql, 'SELECT top 1 * FROM [web_shoutbox] ORDER BY nid DESC');
if($result = odbc_fetch_array($select) )
{
echo'
<script type = "text/javascript">
window.location.href = "*******/inc/chat.php?nid='.$result['nid'].'";
</script>';
}else{
echo'
<script type = "text/javascript">
window.location.href = window.location.href;
</script>';
}
exit;
?>