Hallo!
Ich habe im FireFox mit meinem Script keine Probleme.
Das Script soll eine Anfrage an eine MySQL Datenbank schicken und das Ergebniss ausgeben.
Folgendes sind meine Scripte:
nachrichten_ausgabe.php (Bekommt via $_POST oder $_GET die Variable "user" mit dem jeweiligen Username)
nachrichten_suche.php
nachrichten_ajax.js
Die Datenbank heißt nachrichten (Tabelle: intranet) und es sind folgende Felder vorhanden:
* id
* user
* time
* message
* touser
* status
Das komisch ist im FireFox funktioniert alles ohne Probleme.
Im InternetExplorer funktioniert es teilweise, das heißt wenn ich in die Seite einsteige dann scheint es zu funktionieren nur nach einiger Zeit fehlern Datenbank-Einträge.
Was habe ich falsch gemacht?
DANKE!!
Ich habe im FireFox mit meinem Script keine Probleme.
Das Script soll eine Anfrage an eine MySQL Datenbank schicken und das Ergebniss ausgeben.
Folgendes sind meine Scripte:
nachrichten_ausgabe.php (Bekommt via $_POST oder $_GET die Variable "user" mit dem jeweiligen Username)
PHP-Code:
<?php
$time = time();
$datum = date("d.m.Y",$time);
$uzeit = date("H:i:s",$time);
$db = mysql_connect(localhost,**,**);
if ($_GET['user'])
{ $userl = strtolower($_GET['user']);
}
else
{ $userl = strtolower($_POST['user']);
}
if ($_GET['mark'])
{ $sql = "UPDATE nachrichten SET status = '1' WHERE id = '".$_GET['mark']."'";
$res = mysql_db_query(intranet,$sql);
}
if ($_GET['read'])
{ $sql = "UPDATE nachrichten SET status = '1' WHERE touser = '".$userl."'";
$res = mysql_db_query(intranet,$sql);
}
?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta http-equiv="Pragma" content="no-cache" />
<title>Nachrichten</title>
<script type='text/javascript' src='nachrichten_ajax.js'></script>
<link rel="stylesheet" href="style.css" type="text/css" />
</head>
<body>
<table width="100%" border="0" cellpadding="0" cellspacing="0">
<tbody>
<tr>
<td width='33%' align='left'><?= $datum ?></td>
<td width='34%' align='center'><font size='1'><a href='nachrichten_ausgabe.php?read=true&user=<?= $userl ?>' target='ausgabe'>Alle als gelesen markieren</a></font></td>
<td width='33%' align='right'>Loginzeit: <?= $uzeit ?></td>
</tr>
</tbody>
</table>
<table width="100%" border="0" cellpadding="20" cellspacing="20">
<tr>
<td valign="middle" style="border: 1px solid #666666;background-color:#FFFFFF;">
<?
# NACHRICHTEN AUSLESEN ANFANG
if ($user)
{
echo "<div id='eingabe' name='eingabe'>
<input type='hidden' name='search' id='search' size='10' class='Feld2' value='".$user."' />
<div id='suggestions' class='suggestionsBox' style='z-index:3;'>
<div id='ajaxresultate' class='suggestionList'>";
echo "</div></div></div>";
}
else
{ echo "Error: Kein User angemeldet";
}
# NACHRICHTEN AUSLESEN ENDE
?>
</td>
</tr>
</table>
<?
mysql_close($db);
?>
</body>
</html>
PHP-Code:
<?php
$dbhost = "localhost";
$dbuser = "**";
$dbpass = "**";
$datenbank = "intranet";
$dbtable = "nachrichten";
mysql_connect($dbhost,$dbuser,$dbpass) or
die ("Keine Verbindung moeglich");
mysql_select_db($datenbank) or
die ("Die Datenbank existiert nicht");
$sql = "SELECT * FROM ".$dbtable." WHERE (touser = '".$_GET['search']."' OR user = '".$_GET['search']."') ORDER BY id DESC LIMIT 0,5";
$res = mysql_query($sql);
$rows = mysql_num_rows($res);
$userl = $_GET['search'];
echo "<table width='100%' border='0' cellpadding='0' cellspacing='0'><tbody>";
if (!$rows)
{ echo "<tr>
<td colspan='2' align='center'>Es sind keine Nachrichten vorhanden.</td>
</tr>";
}
else
{ echo "<tr>
<td colspan='2'><hr width='100%' color='black'></td>
</tr>";
for($i=0; $i<$rows; $i++)
{ $id = mysql_result($res,$i,"id");
$user = strtolower(mysql_result($res,$i,"user"));
$touser = strtolower(mysql_result($res,$i,"touser"));
$time = date("d.m.Y H:i:s",mysql_result($res,$i,"time"));
$message = utf8_encode(mysql_result($res,$i,"message"));
$status = utf8_encode(mysql_result($res,$i,"status"));
if ($user !== $userl)
{ echo "<tr bgcolor='#EEEEEE'><td><b>von $user</b> ($time Uhr)<br /><i>$message</i></td>";
}
else
{ echo "<tr><td><b>an $touser</b> ($time Uhr)<br /><i>$message</i></td>";
}
if ($status == "0" AND $user !== $userl)
{ echo "<td width='45'><a href='nachrichten_ausgabe.php?mark=$id&user=$userl' target='ausgabe'><img src='./images/del.gif' border='0' /></a> | <a href='nachrichten_eingabe.php?to=$user&user=$userl' target='eingabe'><img src='./images/reply.gif' border='0' /></a></td>";
}
else if ($user !== $userl)
{ echo "<td width='45'> </td>";
}
echo "</tr>
<tr>
<td colspan='2'><hr width='100%' color='black'></td>
</tr>";
}
}
echo "</tbody></table>";
?>
Code:
var zeitintervall ; var xhr ; var wiederholung ; window.onload = function () { wiederholung = window.setTimeout('tasteneingabe()',100); setInterval('time()',5000); if ( window.XMLHttpRequest ) { xhr = new XMLHttpRequest() ; // Alle Mozilla-basierten Browser } else if ( window.ActiveXObject ) { xhr = new ActiveXObject( "Microsoft.XMLHTTP" ) ; // der liebe gute IE :) } } function time() { wiederholung = window.setTimeout('tasteneingabe()',5000); } function tasteneingabe () { clearTimeout( zeitintervall ) ; zeitintervall = setTimeout( "neuesuche()", 100 ) ; } function neuesuche () { sendeajaxanfrage ( document.getElementById( "search" ).value ) ; } function sendeajaxanfrage (search) { xhr.open( "GET", "nachrichten_suche.php?search=" + search, true ) ; xhr.onreadystatechange = ajaxverbindung ; xhr.send( null ) ; }; function ajaxverbindung () { if ( xhr.readyState == 4 ) { var input = document.getElementById( "search" ) ; input.style.backgroundImage = "none"; var div = document.getElementById( "ajaxresultate" ) ; div.innerHTML = xhr.responseText ; var div = document.getElementById( "ajaxresultate" ) ; div.style.display = "inline" ; var diva = document.getElementById( "suggestions" ) ; diva.style.display = "inline" ; } }
* id
* user
* time
* message
* touser
* status
Das komisch ist im FireFox funktioniert alles ohne Probleme.
Im InternetExplorer funktioniert es teilweise, das heißt wenn ich in die Seite einsteige dann scheint es zu funktionieren nur nach einiger Zeit fehlern Datenbank-Einträge.
Was habe ich falsch gemacht?
DANKE!!
Kommentar