![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 8 Pomógł: 0 Dołączył: 26.07.2009 Ostrzeżenie: (0%) ![]() ![]() |
Witam,
piszę właśnie panel administracyjny i napotkałem na pewien problem. Loguje się do panelu admina i wczytuje się pierwsza strona (panel.php a w nim podstrona pierwsza.php), jednak jak wybiorę jedną z podstron przerzuca do strony z logowaniem. Wiem, że jest to wina sesji tylko nie wiem gdzie tkwi problem, ma to miejsce po zalogowaniu a przed wczytaniem podstrony. Siedzę nad tym od rana ![]() I kody: index.php
meta.php
panel.php
podstrony.php
W pliku function.php znajduje się zmienna $nazwa_sesji Proszę o pomoc albo albo zamiast "ryby", o "wędkę". PS. wiem, że używanie "session_register" jest przestarzałe, ale mi ono odpowiada. |
|
|
![]() |
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 320 Pomógł: 36 Dołączył: 28.08.2006 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
session_start powinieneś mieć na każdej podstronie
zamiast session_unregister możesz użyć po prostu unset, a zamiast session_is_registered po prostu isset. wtedy będzie chyba i wygodniej i poprawnie ![]() |
|
|
![]()
Post
#3
|
|
![]() Grupa: Moderatorzy Postów: 6 072 Pomógł: 861 Dołączył: 10.12.2003 Skąd: Dąbrowa Górnicza ![]() |
~bogdan89 ma rację. Wystarczyło zajrzeć do manuala:
http://pl.php.net/manual/en/function.sessi...-registered.php http://pl.php.net/manual/en/function.session-unregister.php Cytat Caution
If you are using $_SESSION (or $HTTP_SESSION_VARS), do not use session_register(), session_is_registered() and session_unregister(). |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 8 Pomógł: 0 Dołączył: 26.07.2009 Ostrzeżenie: (0%) ![]() ![]() |
No tak, ale przecież session_start() jest includowane z meta.php, a i tak po dodaniu do każdej podstrony nic nie pomaga.
|
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 320 Pomógł: 36 Dołączył: 28.08.2006 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
a co dokładnie przypisujesz do zmiennej $nazwa_sesji?
wiesz, że sesja powinna mieć format $sesja = $_SESSION['nazwa'];? ja radziłbym wszędzie na sztywno używać $_SESSION['nazwa'], możesz mieć problem z zasięgiem zmiennych. najlepiej to napisz jaki error lub warning się pokazuje, jeśli się nic nie pokazuje to daj na początku swoich skryptów: Kod error_reporting(E_ALL);
|
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 8 Pomógł: 0 Dołączył: 26.07.2009 Ostrzeżenie: (0%) ![]() ![]() |
Doszedłem o krok dalej. Teraz w PA wyskakuje informacja "Brak dostepu!". Ale chociaż przerzuca podstrony
![]() index.php
panel.php
pierwsza.php
podstrony.php
|
|
|
![]()
Post
#7
|
|
![]() Grupa: Zarejestrowani Postów: 320 Pomógł: 36 Dołączył: 28.08.2006 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
w powyższych skryptach, w przypadku pliku index.php widzę błędy:
w linii 3: Kod $logowanie==$_SESSION['logowanie']; przypisanie wartości do zmiennej to jeden znak '='.w linii 14: Kod elseif ($logowanie ='zalogowany'){ przyrównanie to dwa znaki '==', a Ty masz jeden.no i jeszcze dwie uwagi: - w twoim przypadku nie musisz przypisywać zmiennej sesyjnej do innej zmiennej. możesz bez problemów operować na $_SESSION['logowanie'] i korzystać z niej w każdej instrukcji warunkowej. Bez zbędnej linii kodu. - pamiętaj o session_start na każdej podstronie ![]() |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 8 Pomógł: 0 Dołączył: 26.07.2009 Ostrzeżenie: (0%) ![]() ![]() |
![]() ![]() ![]() EDIT I znowu to samo. Wczoraj wszystko działało a dziś rano znów leży, chodzi o wylogowywanie. Po edycji mam takie kody: index.php
panel.php
podstrony.php
Ten post edytował mateo92pl 18.09.2009, 14:37:36 |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 14.08.2025 - 05:22 |