Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP][JavaScript]Odświeżanie diva i brak przekierowania php
krisek101
post 25.07.2013, 16:45:37
Post #1





Grupa: Zarejestrowani
Postów: 21
Pomógł: 0
Dołączył: 16.12.2012

Ostrzeżenie: (0%)
-----


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."");


Ten post edytował krisek101 25.07.2013, 17:06:56
Go to the top of the page
+Quote Post
maviozo
post 25.07.2013, 19:25:07
Post #2





Grupa: Zarejestrowani
Postów: 197
Pomógł: 24
Dołączył: 22.11.2010

Ostrzeżenie: (0%)
-----


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ń?
Go to the top of the page
+Quote Post
krisek101
post 25.07.2013, 21:18:17
Post #3





Grupa: Zarejestrowani
Postów: 21
Pomógł: 0
Dołączył: 16.12.2012

Ostrzeżenie: (0%)
-----


Użyłem ob_start() i ob_end_flush(), pozmienialem troche w kodzie i już działa smile.gif
Dzieki za pomoc smile.gif
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 5.07.2025 - 16:34