Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][JavaScript]Odświeżanie diva i brak przekierowania php
Forum PHP.pl > Forum > Przedszkole
krisek101
Witam.
Napotkany przeze mnie problem dotyczy odświeżania co 1s diva oraz braku przekierowania php.

Treść skryptu:

<script type="text/javascript">
setInterval("ods();",1000);
function ods(){
$('#odswiez').load(location.href + ' #czas');
}
</script>


Treść php:
  1. echo '<div id="odswiez"><div id="czas">';
  2.  
  3. $data1=date('jGis');
  4. $data=$data1-$user['data_ost_log'];
  5. if($data>10){
  6. header("Location: wyloguj.php?grupa=".$grupa."&nick=".$user['nick']."&info=1");
  7. }
  8.  
  9. echo '</div></div>';


Po zalogowaniu użytkownika na stronie do bazy danych zapisuje aktualna godzina w formacie 'jGis'. Następnie na stronie dla osób zalogowanych skrypt ma co sekundę odświeżać aktualny czas i porównywać go z czasem ostatniego logowania. Jeżeli minęło 10s od ostatniego logowania wówczas użytkownik zostaje przekierowany na stronę wyloguj.php, skąd zostaje przekierowywany na stronę logowania z informacją o zbyt długiej bezczynności na stronie. Jeżeli umieszczę kod poza divem odświeżania i 10s po zalogowaniu odświeżę stronę wszystko działa poprawnie(zostanę przekierowany na stronę logowania). Natomiast w przypadku, gdy kod znajduje się w tym divie przekierowanie na stronę wyloguj.php następuje tak jakby do połowy. Ponieważ adres przeglądarki nie zmienia się na wyloguj.php, pozostaje cały czas taki sam, ale użytkownik zostaje wylogowany, tj. sesja zostaje skasowana. Wtedy po manualnym odświeżeniu strony nie przenosi mnie na stronę logowania tylko wyświetla się komunikat ze nie jestem zalogowany.
Proszę o pomoc i dziękuję za zainteresowanie.

Treść wyloguj.php:
  1. include('includes/mysql.php');
  2. $nick=$_GET['nick'];
  3. $grupa=$_GET['grupa'];
  4. $info=$_GET['info'];
  5. $wyloguj=mysql_query("UPDATE users SET sesja='', status='4' WHERE nick='$nick'");
  6. header("Location: log.php?grupa=".$grupa."&typ=tekstowy&info=".$info."");
maviozo
może dlatego, że header() nie zadziała, jesli już coś wysłałeś do przeglądarki (tzn. masz echo przed header)?
Dodaj na początku całego kodu ob_start() i na samym końcu ob_end_flush().

Parser wysypuje jakieś błędy? Masz włączone raportowanie błędów i ostrzeżeń?
krisek101
Użyłem ob_start() i ob_end_flush(), pozmienialem troche w kodzie i już działa smile.gif
Dzieki za pomoc smile.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.