Piszę skrypt czatu więkoszści w PHP ale jest troche JS. Mój problem polega na odświeżaniu rekordu z bazy. W pliku wyswietlanie.php zawarty jest kod którym pobieram rekordy z bazy i je wyświetlam. Mój problem polega na tym że te rekordy są 1 sec po czym znikają a odswieżanie dalej trwa (mam tam aktualny czas więc widze kiedy odświeża).
plik główny
<html>
<head>
<script language=javascript>
// tworzymy zmienna
var object = false;
// tworzymy obiekt XMLHttpRequest (dla IE jest troche inaczej, stad funkcja warunkowa)
if (window.XMLHttpRequest) object = new XMLHttpRequest();
else if (window.ActiveXObject) object = new ActiveXObject("Microsoft.XMLHTTP");
// ponizsza funkcja pobiera dane ze wskazanego zrodla (pliku lub skryptu php) do wskazanego
// DIVa poprzez obiekt XMLHttpRequest
function getData(dataSource, divID)
{
// kontynuuje wylacznie gdy obiekt nie jest zajety
if (object.readyState==4 || object.readyState==0)
{
// tworzy zmienna odpowiadajaca konkretnemu obiektowi na stronie
var obj = document.getElementById(divID);
// czyta z pliku lub wykonuje skrypt
object.open("GET", dataSource);
// definiuje metode obslugi odpowiedzi serwera
object.onreadystatechange = function()
{
// kontynuuje jesli transmisja zostala zakonczona powodzeniem
if (object.readyState == 4 && object.status == 200)
obj.innerHTML= object.responseText;
}
// wysyla zadanie do serwera
object.send(null);
}
}
// w ponizszej funkcji wywolujemy funkcje getData z odpowiednimi parametrami
// oraz wywolujemy ja sama rekurencyjnie po co okreslony czas (w naszym wypadku 1000 ms)
function odswiezaj()
{
getData('wyswietlanie.php','mojDIVIK');
setTimeout("odswiezaj()", 5000);
}
</script>
</head>
include ("zabezpieczenie.php");
include ("polacz.php");
echo '<center><a href="?pokoj=1">Podstrona</a>';
echo '<a href="?pokoj=2">Podstrona</a>';
echo '<a href="?pokoj=3">Podstrona</a>';
echo '<a href="?pokoj=4">Podstrona</a>';
echo '<a href="?pokoj=5">Podstrona</a>';
echo '<a href="?pokoj=6">Podstrona</a>';
echo '<a href="?pokoj=7">Podstrona</a></center><p>';
if ($_GET['pokoj'] == '1')
{
$kategoria = 1;
}
if ($_GET['pokoj'] == '2')
{
$kategoria = 2;
}
if ($_GET['pokoj'] == '3')
{
$kategoria = 3;
}
if ($_GET['pokoj'] == '4')
{
$kategoria = 4;
}
if ($_GET['pokoj'] == '5')
{
$kategoria = 5;
}
if ($_GET['pokoj'] == '6')
{
$kategoria = 6;
}
if ($_GET['pokoj'] == '7')
{
$kategoria = 7;
}
$tresc = strip_tags(htmlspecialchars(mysql_real_escape_string($_POST['tresc'])));
$nadawca = $_SESSION['nick'];
$idnadawca = $user[id];
$wyslano = date('G:i:s');
{
echo '<center>';
echo "$kategoria";
echo '<div class="title">
Następną wiadomość możesz wysłać za <span id="sekundy"></span> sekund.
</div>';
echo '<form action="" method="post">
<input type="hidden" name="send" value="1">
<input type="hidden" name="kategoria" value="'.$kategoria.'" />
<table><tr>
<td><input type="text" name="tresc" size="40" maxlength="40"/></td><td><input name="dodaj" type="submit" value="Wyślij" id="button"></form></td></tr></table>';
}
?>
<script type="text/javascript">
o=document.getElementById('sekundy');
function odliczaj(o,sek){
o.innerHTML=sek
if(sek>0)setTimeout(function(){odliczaj(o,--sek)},1e3)
var input = document.getElementById('button');
input.disabled = 'disabled';
if(sek==0)input.disabled = "";
}
odliczaj(document.getElementById('sekundy'),30)
</script>
<?php
if((isset($_POST['dodaj']))) {
if(empty($_POST["tresc"])) {
echo 'Nie wypełniono wszystkich pól<br>'; }
else
{
$zapytanie = "INSERT INTO `czat` (`nadawca`, `idnadawca`, `wyslano`, `kategoria`, `tresc`) VALUES ('".$nadawca."', '".$idnadawca."', '".$wyslano."', '".$kategoria."', '".$tresc."')";
$ostatnio = 'UPDATE `uzytkownicy` SET `ostatniododal`= "'.$ostatniododal.'" WHERE `id`="'.$user[id].'"';
}
if($_POST['send'])
{
{
if($idzapytania === TRUE)
{
echo '<font color="green"><b>Poprawnie wysłano wiadomość</b></font><br />';
}
else
{
echo '<font color="red"><b>Nie udało się wysłać wiadomości. Proszę spróbować za jakiś czas!</b></font><br />'; }
}
}
}
$adres='http://'.$_SERVER['SERVER_NAME'].$_SERVER['REQUEST_URI'];
if ($adres == "http://www.artekp999.cba.pl/czat.php" || $adres == "http://artekp999.cba.pl/czat.php" || $adres == "www.artekp999.cba.pl/czat.php")
{
$przekierowanie = 'czat.php?pokoj=1';
header('HTTP/1.1 301 Moved Permanently'); header('Location: '.$przekierowanie); }
$liczba_pokoi = 7; //sumuj z bazy, lub recznie zapisuj
if($_GET['pokoj'] > $liczba_pokoi)
{
echo 'Niepoprawny pokój!'; $przekierowanie = 'czat.php?pokoj=1';
header('HTTP/1.1 301 Moved Permanently'); header('Location: '.$przekierowanie); }
else
{
echo '<div id="mojDIVIK">'; include ("wyswietlanie.php");
?>
<script language=javascript>
odswiezaj();
</script>
<?php
}
include ("stopka.php");
?>
wyswietlanie.php
<?php
$query = mysql_query("select * from czat WHERE `kategoria`='$kategoria' order by id desc limit 0,50"); {
$naz .= '<a href="news.php?id='.$rekord[2].'">'.$rekord[1].'</a>('.$rekord[3].') '.$rekord[5].'<br>';
}
?>