Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Sesje
Forum PHP.pl > Forum > Przedszkole
mizii
Mam taki problem mam w pliku index.php kilka require ktore po kolei wczytuja moduly header, menu, content, foother
i jak klikam w menu wyloguj to wylogowanie jest wykonane po wyswietleniu juz menu i widac opcje ktore sa dostepne dla zalogowania, moge jakos wymusic to zeby najpierw mnie wylogowalo? a dopiero pozniej wczytalo menu?
Tomplus
Tak,

1. funkcja logout powinna być przez header, a nie po (tutaj pewnie funkcja jest w CONTENT).
2. Użyć header("Location: index.php"); na stronie wylogowania, aby przekierować na stronę domyślną po wylogowaniu.
nospor
A przede wszystkim powinienies oddzielac logike aplikacji od jej wyswietlania. A ty teraz mieszasz wszystko i masz co masz.
mizii
dodałem na poczatku pliku index cos takiego probowałem tez wrzucic to do nagłówka

if ($_GET["id"]=='logout')
{
session_destroy();
}


gdyż link do wylogowania tak xxx/index.php?id=logout


nospor - mogl bys mi podeslac jakies namiary na temat uporządkowania tego?
viking
A dlaczego nie sprawdzasz coś w stylu if(isset($_SESSION['user'])){echo menu dla zalogowanego}
Ogólnie głębszy temat jeśli chodzi o uporządkowanie. Poczytaj o MVC.
nospor
Cytat
nospor - mogl bys mi podeslac jakies namiary na temat uporządkowania tego?

Idea jest prosta: najpierw robisz wszelkie obliczenia, pobierania danych z bazy itp. Gdy masz juz wszystkie niezbedne dane dopiero robisz wyswietlanie tego. ustawianie ciasteczek, przekierowania i inne headers robisz w czesci logiki. Wowczas gdy dochodzisz do wyswietlania to masz juz wszystko co potrzebujesz.
Jesli chcesz poczytac to zainteresuje sie MVC.

Z prywatnych rzeczy moge ci pokazac to:
http://nospor.pl/klasa-widoku.html
jest tam pokazane jak oddzielic logike od wyswietlania. Przyklad ten jest daleki od idealu ale ladnie ci pokaze o czym teraz mowie.
mizii
viking co do menu to wyswietlam je tak
if($_SESSION['userlvl']==1)
{echo menu dla admina}
elseif($_SESSION['userlvl']==2)
{echo menu dla zalogowany}
else
{echo menu dla niezalogowany}
nospor
@mizii twoj problem polega teraz na tym, ze wylogowanie robisz w content, a menu wyswietlasz przed content. Niezaleznie jak to teraz robisz w content to nie zadziala bo i tak menu wykonujesz najpierw.
mizii
dobra dzieki chlopaki udalo mi sie to poprawic zmieniajac troszke w logice i wywalajac logowanie w inne miejsce 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.