Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [AJAX][PHP]Odświeżenie strony
Forum PHP.pl > Forum > Przedszkole
Mlodycompany
Witam. Mam dość nietypowy problem z przekierowaniem strony. Otóż mam dynamiczną stronę, podstrony wczytuje za pomocą $.ajax() jQuery i na podstronach mam sprawdzanie sesji, czyli czy user jest zalogowany etc. i jak nie jest zalogowany to przekierowuje go na stronę logowania, a przynajmniej powinno. Header("Location: ...") nie działa. Czy jest jakiś inny sposób aby to wykonać?
zaq1991zaq
Może masz błąd w kodzie i dlatego nie działa.
Przekierować można poprzez umieszczenie tego
<meta http-equiv="refresh" content="x; url=www.tymczasowastrona.pl">
Mlodycompany
Niestety nie działa. Błędu w kodzie raczej nie ma. Może zamieszczę jakiś poglądowy przykład tego. Mam stronę index.php z formularzem do logowania, index2.php to strona główna po zalogowaniu i do niej treść wczytywana jest dynamicznie. Powiedzmy, że ktoś wchodzi na stronę np. kontakt, jQuery wczytuje ajaxem plik kontakt.php do diva, a w tym pliku jest warunek
  1. if($zalogowany == false){
  2. header("Location: index.php");
  3. }
i ten header kompletnie nic nie robi...
nospor
włącz wyświetlanie wszystkich bledów, a bledy zobaczysz
Tu masz napisane jak
Temat: Jak poprawnie zada pytanie
Mlodycompany
po włączeniu wyświetlania wszystkich błędów, nic się nie zmienia, nie wyskakuje żaden błąd ani nic.
nospor
1) A patrzyles czy w ogole ci wchodzi w ten warunek?
if($zalogowany == false){
die('Widzisz mnie?');
}

2) Po header ma być exit
if($zalogowany == false){
header("Location: index.php");
exit;
}
Mlodycompany
1. warunek jest napewno spełniony!
2. nie pomogło sad.gif
nospor
ad1) Zobaczyłeś tekst: "Widzisz mnie?"?
Mlodycompany
tak, zobaczyłem. Ogólnie teraz sprawdzam na skrypcie do wylogowywania, który też jest dynamiczny. Zakańcza sesje a nie odświeża strony
nospor
A czy tu nie powinna być przypadkiem pełna ściezka:
Location: http://blabla.pl/index.php
?
Mlodycompany
jest pełna ścieżka. Chyba wszystkie możliwe kombinacje przetestowałem i dalej nie działa
nospor
Pokaz cały kod, włącznie z poprawkami,o które prosiłem
Mlodycompany
więc tak, to jest funkcja wylogowująca
  1. function tlogout(){
  2. die('Widzisz mnie?');
  3. header("Location:http://google.pl");
  4. exit();
  5. }

wywołanie jest w pliku action.php i wygląda tak
  1. tlogout()
i jquery wczytuje ten plik funkcją $.ajax() do diva
nospor
Cytat
i jquery wczytuje ten plik funkcją $.ajax() do diva
Ajax to ajax i nie ma nic wspólnego z Twoją główną stroną w przeglądarce.
Mlodycompany
tzn możesz jakoś rozwinąć pojęcie
Cytat
Ajax to ajax i nie ma nic wspólnego z Twoją główną stroną w przeglądarce


W takim razie w jaki sposób mogę przejść na stronę logowania po wylogowaniu?
nospor
Jakbyś normalnie robił to normalnie byś przechodził.
Ale ty wylogowanie robisz ajaxem, musisz więc odświeżyć stronę przy pomocy js:
Kod
document.location.href = 'http://strona/logowania.pl';
Mlodycompany
hmm no właśnie cała akcja polega na tym, żeby zrobić to za pomocą php
nospor
To w php zwracaj ten kod co ci podałem, a po stronie przeglądarki wykonuj go.
Mlodycompany
już myślałem, że będę musiał jakoś ciężko na około to omijać, ale jednak działa. Dzięki wielki 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.