mizii
3.07.2017, 23:35:02
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
4.07.2017, 05:46:19
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
4.07.2017, 08:57:50
A przede wszystkim powinienies oddzielac logike aplikacji od jej wyswietlania. A ty teraz mieszasz wszystko i masz co masz.
mizii
4.07.2017, 09:32:22
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
4.07.2017, 09:34:37
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
4.07.2017, 09:35:25
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.htmljest tam pokazane jak oddzielic logike od wyswietlania. Przyklad ten jest daleki od idealu ale ladnie ci pokaze o czym teraz mowie.
mizii
4.07.2017, 09:39:50
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
4.07.2017, 09:42:33
@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
4.07.2017, 09:45:49
dobra dzieki chlopaki udalo mi sie to poprawic zmieniajac troszke w logice i wywalajac logowanie w inne miejsce
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.