Mlodycompany
2.11.2011, 17:59:05
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
2.11.2011, 18:28:46
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
2.11.2011, 18:43:10
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
if($zalogowany == false){
header("Location: index.php"); }
i ten header kompletnie nic nie robi...
nospor
2.11.2011, 18:44:31
włącz wyświetlanie wszystkich bledów, a bledy zobaczysz
Tu masz napisane jak
Temat: Jak poprawnie zada pytanie
Mlodycompany
2.11.2011, 18:58:12
po włączeniu wyświetlania wszystkich błędów, nic się nie zmienia, nie wyskakuje żaden błąd ani nic.
nospor
2.11.2011, 19:00:05
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
2.11.2011, 19:17:12
1. warunek jest napewno spełniony!
2. nie pomogło
nospor
2.11.2011, 19:21:32
ad1) Zobaczyłeś tekst: "Widzisz mnie?"?
Mlodycompany
2.11.2011, 19:33:44
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
2.11.2011, 19:38:36
A czy tu nie powinna być przypadkiem pełna ściezka:
Location:
http://blabla.pl/index.php?
Mlodycompany
2.11.2011, 19:40:52
jest pełna ścieżka. Chyba wszystkie możliwe kombinacje przetestowałem i dalej nie działa
nospor
2.11.2011, 19:46:25
Pokaz cały kod, włącznie z poprawkami,o które prosiłem
Mlodycompany
2.11.2011, 19:53:30
więc tak, to jest funkcja wylogowująca
function tlogout(){
header("Location:http://google.pl"); }
wywołanie jest w pliku action.php i wygląda tak
tlogout()
i jquery wczytuje ten plik funkcją $.ajax() do diva
nospor
3.11.2011, 08:36:54
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
3.11.2011, 17:03:24
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
3.11.2011, 17:09:09
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
3.11.2011, 17:32:42
hmm no właśnie cała akcja polega na tym, żeby zrobić to za pomocą php
nospor
3.11.2011, 17:41:37
To w php zwracaj ten kod co ci podałem, a po stronie przeglądarki wykonuj go.
Mlodycompany
3.11.2011, 18:09:06
już myślałem, że będę musiał jakoś ciężko na około to omijać, ale jednak działa. Dzięki wielki
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.