Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Problem z 'function' w php., system logowania, zakrywa pozostałą stronę
NorQ
post 10.06.2012, 10:46:44
Post #1





Grupa: Zarejestrowani
Postów: 91
Pomógł: 0
Dołączył: 15.07.2011

Ostrzeżenie: (0%)
-----


Witam, mam problem z pewnym skryptem, który ukrywa stronę jeśli użytkownik jest nie zalogowany.

Funcja w config.php
  1. function check_login() {
  2. if(!$_SESSION['logged']) {
  3. die('<p>Proszę się zalogować.</p>');
  4. }
  5. }


Skrypt:
  1. <?php
  2. include 'config.php';
  3.  
  4. check_login();
  5.  
  6. echo 'Witaj w obszarze dla zalogowanych.';
  7. ?>


Problem polega na tym, że dany ukrywa resztę strony, czyli stopka, inne boxy, itd. A ja chcę żeb zakrywał tylko wybrany obszar. Jak to naprawić?


--------------------
HTML, CSS, JS, PHP i inne nie idą w las...
Powoli się uczę co i jak ;]
Go to the top of the page
+Quote Post
markonix
post 10.06.2012, 10:50:48
Post #2





Grupa: Zarejestrowani
Postów: 2 707
Pomógł: 290
Dołączył: 16.12.2008
Skąd: Śląsk

Ostrzeżenie: (0%)
-----


Infantylnie można to zrobić tak:

  1. echo 'nie jesteś zalogowany';
  2. include('./footer.php');
  3. die();


Przyjmując, że stopkę tak dołączasz.


--------------------
Go to the top of the page
+Quote Post
NorQ
post 10.06.2012, 10:54:44
Post #3





Grupa: Zarejestrowani
Postów: 91
Pomógł: 0
Dołączył: 15.07.2011

Ostrzeżenie: (0%)
-----


Wybacz, ale nie chcę rozkładać strony na części. Jest jakieś inne rozwiązanie ?


--------------------
HTML, CSS, JS, PHP i inne nie idą w las...
Powoli się uczę co i jak ;]
Go to the top of the page
+Quote Post
markonix
post 10.06.2012, 10:56:30
Post #4





Grupa: Zarejestrowani
Postów: 2 707
Pomógł: 290
Dołączył: 16.12.2008
Skąd: Śląsk

Ostrzeżenie: (0%)
-----


Inny sposób to prosty IF.
Kolejny sposób to header i przekierowanie go na inną stronę.

Co do mojego pierwszego sposobu, to nic nie karzę Ci rozkładać.
Przecież chyba masz stopkę już w jakimś oddzielnym pliku?


--------------------
Go to the top of the page
+Quote Post
!*!
post 10.06.2012, 10:58:38
Post #5





Grupa: Zarejestrowani
Postów: 4 298
Pomógł: 447
Dołączył: 16.11.2006

Ostrzeżenie: (0%)
-----


  1. function check_login()
  2. {
  3. if($_SESSION['logged'])
  4. {
  5. return true;
  6. }
  7. return false
  8. }


  1. include 'config.php';
  2.  
  3. if(check_login())
  4. {
  5. echo 'Witaj w obszarze dla zalogowanych.';
  6. }


Ten post edytował !*! 10.06.2012, 10:59:02


--------------------
Nie udzielam pomocy poprzez PW i nie mam GG.
Niektóre języki programowania, na przykład C# są znane z niezwykłej przenośności (kompatybilność ze wszystkimi wersjami Visty jest wiele warta).
Go to the top of the page
+Quote Post
NorQ
post 10.06.2012, 11:01:05
Post #6





Grupa: Zarejestrowani
Postów: 91
Pomógł: 0
Dołączył: 15.07.2011

Ostrzeżenie: (0%)
-----


Stopki nie mam w odzielnym pliku. Skrypt znajduje się w kodzie HTML, czyli index.php . Nie można tego die(); jakoś zmodyfikować żeby blokowało tylko wyznaczony obszar ?


--------------------
HTML, CSS, JS, PHP i inne nie idą w las...
Powoli się uczę co i jak ;]
Go to the top of the page
+Quote Post
Mephistofeles
post 10.06.2012, 11:04:34
Post #7





Grupa: Zarejestrowani
Postów: 1 182
Pomógł: 115
Dołączył: 4.03.2009
Skąd: Myszków

Ostrzeżenie: (0%)
-----


Nie. Die kończy skrypt.
Go to the top of the page
+Quote Post
!*!
post 10.06.2012, 11:05:41
Post #8





Grupa: Zarejestrowani
Postów: 4 298
Pomógł: 447
Dołączył: 16.11.2006

Ostrzeżenie: (0%)
-----


Cytat(NorQ @ 10.06.2012, 12:01:05 ) *
Nie można tego die(); jakoś zmodyfikować żeby blokowało tylko wyznaczony obszar ?


Nie. Die to alias dla exit() zatrzymuje wykonywanie skryptu. Podałem Ci wyżej jak to powinno wyglądać, inaczej tego nie zrobisz.


--------------------
Nie udzielam pomocy poprzez PW i nie mam GG.
Niektóre języki programowania, na przykład C# są znane z niezwykłej przenośności (kompatybilność ze wszystkimi wersjami Visty jest wiele warta).
Go to the top of the page
+Quote Post
NorQ
post 10.06.2012, 11:23:15
Post #9





Grupa: Zarejestrowani
Postów: 91
Pomógł: 0
Dołączył: 15.07.2011

Ostrzeżenie: (0%)
-----


Znalazłem inne rozwiązanie, może troche prymitywne ale rozwiązanie. smile.gif

  1. <?php
  2. include 'config.php';
  3.  
  4. if(!$_SESSION['logged']) {
  5.  
  6. echo 'Niezalogowany.';
  7.  
  8. }
  9. else {
  10.  
  11. echo 'Zalogowany.';
  12.  
  13. }
  14. ?>


Jest to sposób troszkę mało nowoczesny ale ważne że działa jak powinoo. ;P

Ten post edytował NorQ 10.06.2012, 11:23:45


--------------------
HTML, CSS, JS, PHP i inne nie idą w las...
Powoli się uczę co i jak ;]
Go to the top of the page
+Quote Post
Spawnm
post 10.06.2012, 11:39:45
Post #10





Grupa: Moderatorzy
Postów: 4 069
Pomógł: 497
Dołączył: 11.05.2007
Skąd: Warszawa




Przecież coś takiego napisał !*! kilka postów wyżej...
Go to the top of the page
+Quote Post
szmerak
post 10.06.2012, 13:21:47
Post #11





Grupa: Zarejestrowani
Postów: 286
Pomógł: 12
Dołączył: 23.11.2006
Skąd: WL

Ostrzeżenie: (0%)
-----


albo zasosuj tutaj OOP

utwórz klasę template następnie dodaj do niej metody
setSiteContent <- gdzie będziesz przekazywał zmienne do templata

a na końcu parse
  1. public function parse() {
  2. include 'header.php';
  3. $content = $this->content; //zmienne przekazane;
  4. include $this->template_file.".php";
  5. include 'footer.php';
  6. }


i w taki sposób masz zawsze wszystkie części strony i możesz wyświetlać co ci się podoba...

Ten post edytował szmerak 10.06.2012, 13:24:27
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 19.07.2025 - 12:41