Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] Logowanie i odswiezanie
Forum PHP.pl > Forum > Przedszkole
glizda1125
Witam

Na poczatku zaznacze ze przeczytalem chyba wszystkie posty z forum o odswiezaniu ale nic nie znalazlem albo cos przeoczylem.
Problem wyglada astepujaco:

Nie wiem w czym moze siedziec problem wiec przedstawie wszystko od poczatku.
Struktura mojej strony wyglada tak ze mam plik index.php a w nim linki do:
Kod
index.php?id=a
index.php?id=b
....
index.php?id=x

nastepnie mam w funkcji switch w zaleznosci jaka bedzie koncowka w linku bedize robil:
  1. <?php
  2. include('jakistamplik.php');
  3. ?>


Napisalem proste logowanie na sesjach. Poz prawidlowym wpisaniu logina i hasla skrypt robi:
  1. <?php
  2. $_SESSION['zalogowany']='ok';
  3. ?>

Na poczatku pliku index.php mam:
  1. <?php
  2. ?>

W plikach ktore pobieram przez include i che ograniczyc logowaniem dopisalem:
  1. <?php
  2. if($_SESSION['zalogowany'] == 'ok')
  3. {
  4. wyswietl strone
  5. } 
  6. else 
  7. {
  8. echo &#092;"Musisz sie zalogować!
  9. &#092;";
  10. include ('login.php');
  11. }
  12. ?>

Problem pojawia sie nastepujaco ze po odpaleniu stronu np przed logowaniem oczywiscie nie mam dostepu do plikow i wyskakuje mi ze musze sie zalogowac. Po zalogowaniu jak klikne na jakis link dalej nie moge wejsc. Dopiero jak dam F5 to wczytuje mi jeszcze raz sesje i zaczyna dzialac. Podobnie jest jak sie wyloguje to klikne na link np:
Kod
index.php?id=admin

ktory includuje do pliku index.php jaies tam plik np admin.php. Powinno oczywiscie wyskoczyc ze musze sie zalogowac no ale wszystko dziala tak jak bym dalej byl zalogowany. Dopiero po F5 zaczyna dzialac wylogowywanie.

Probowalem wstawiac w index.php jak i w includowanych plikach:
  1. <?php
  2. header(&#092;"Pragma: no-cache, must-revalidate\");
  3. ?>

ale nic nie pomoglo.
Nie wiem gdzie jest problem czy po stronie skryptu czy moze po stronie zle ustawionego serwera bo po zalogowaniu sie skrypt tworzy sesje a po w
logowaniu niczszy ja tylko nie wiem jak zrobic zeby po zalogowainu odswiezal cal
 strone.

Pozdrawiam
Cezar708
nie wiem co jest grane, ale na samym początku sprawdź,

1. czy problem pojawia się pod każdą przeglądarką czy pod jakąś konkretną (bo to wygląda mi na IE)
2. Co pokazuje error_log (może `Header already sent...`)
3. jeśli pkt 2. to usuń wszelkie spacje sprzed session_start()
glizda1125
No to trafiles w 10. Pod opera wszystko smiga jak trzeba no ale teraz mam pytanie jak zrobic  to zeby w IE wszystko dzialalo?
tommy4
przed wysłaniem jakichkolwiek danych, a po ustawieniu cookiesów, sesji czy czegokolwiek musisz wywołać header('Location: index.php');, żeby przeglądarka sobie wszystko ustawiła (czyli tak jakby php wykonuje samo za ciebie naciśnięcie F5).
glizda1125
Cytat(tommy4 @ 17.10.2007, 15:45:14 ) *
przed wysłaniem jakichkolwiek danych, a po ustawieniu cookiesów, sesji czy czegokolwiek musisz wywołać header('Location: index.php');, żeby przeglądarka sobie wszystko ustawiła (czyli tak jakby php wykonuje samo za ciebie naciśnięcie F5).


Po wpisaniu tego strona warjuje, wyglada to tak jak by caly czas prubowal sie odswierzyc od nowa i nic nie pokazuje. sad.gif
verox
na poczatku pliku daj session_start(); jesli masz w roznych plikach te skrypty
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.