![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 25 Pomógł: 0 Dołączył: 31.07.2009 Ostrzeżenie: (0%) ![]() ![]() |
Witam
Mam na stronie dwie grupy użytkowników: - zwykli użytkownicy - użytkownicy z dostępem do panelu administracyjnego. Ci wszyscy użytkownicy są zapisani w jednej tabeli - rozróżniam ich na podstawie pola ranga (0 lub 1). Ma działać to na takiej zasadzie, że wszyscy logują się za pomocą jednego formularza (kod, który mam wstawię niżej). Następnie osoby, które mają mieć możliwość logowania się na konto admina (w polu ranga jest '1') po zalogowaniu się mają możliwość kliknięcia w link 'Panel adm...' (dodam, że login do pa i konta użytkownika jest taki sam) i zalogowania się do niego. Mój problem dotyczy tej ostatniej kwestii, a mianowicie - jak zrobić, aby użytkownik mógł zalogować się do PA oraz podczas tej autoryzacji było sprawdzane, czy sesja użytkownika jest aktywna. Oto fragmenty kodu: funkcja admin_sesja:
index.php
login.php
Edit Witam Nie macie żadnego pomysłu jak się za to zabrać? Może coś źle wyjaśniłem? Ten post edytował joka13 26.04.2010, 17:51:02 |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 260 Pomógł: 34 Dołączył: 22.02.2010 Ostrzeżenie: (0%) ![]() ![]() |
aktualnie tez zmierzam do zrobienia PA i ja chce to zrobic mniej wiecej tak...
Loguje sie normalnie jako uzytkownik, jesli uzytkownik ma prawa do PA klika wiec i dostaje logowanie, do czy ma sie wyswietlic logowanie czy odrazu PA sprawdzam w sesji czyli $_SESSION['zmienna dla admina']... jesli jest true oraz $_SESSION['zmienna dla usera'] tez jest true to wchodze do PA, jesli tylko $_SESSION['zmienna dla usera'] jest true to daje logowanie do PA i po zalogowaniu ustawiam $_SESSION['zmienna dla admina'], jesli wogole to $_SESSION['zmienna dla usera'] jest false to calkowicie wyswietlam logowanie do serwisu... a wylogowanie mozna osobno zrobic dla PA i z serwisu, wystarczy wywalic $_SESSION['zmienna dla admina']... mozna cos tam jeszcze pododawac zeby bylo bezpieczniej itd |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 25 Pomógł: 0 Dołączył: 31.07.2009 Ostrzeżenie: (0%) ![]() ![]() |
Próbowałem już takiej metody, ale problem jest tego typu, że pliki użytkownika i administratora są w dwóch różnych katalogach (także logowanie jest w dwóch różnych plikach). Wiąże się to z tym, że pojęcia nie mam w jaki sposób przekazać wartość $_SESSION['login_user'] do innego pliku.
|
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 40 Pomógł: 0 Dołączył: 18.07.2007 Ostrzeżenie: (0%) ![]() ![]() |
Twój błąd polega na inicjacji sesji (session_start()) w jednej z funkcji.
Użyj session_start() na początku swojego pliku index.php, a we wszystkich plikach sesja będzie taka sama. |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 260 Pomógł: 34 Dołączył: 22.02.2010 Ostrzeżenie: (0%) ![]() ![]() |
Twój błąd polega na inicjacji sesji (session_start()) w jednej z funkcji. Użyj session_start() na początku swojego pliku index.php, a we wszystkich plikach sesja będzie taka sama. no chyba musi miec wszedzie session_start inaczej nie bedzie mogl zweryfikowac czy jest sesja... |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 25 Pomógł: 0 Dołączył: 31.07.2009 Ostrzeżenie: (0%) ![]() ![]() |
Dokładnie tak, mam wszędzie session_start.
Problem w tym, że w pliku, gdzie jest logowanie admina chciałbym dać takie coś w warunku if: $_SESSION['login'] == loginu podanego przez użytkownika podczas logowania do admina $_SESSION['login'] - jest to login użytkownika zapisanego w sesji, gdy tenże użytkownik się zalogował. Problem polega na tym, że nie wiem jak wartość $_SESSION['login'] przekazać do pliku, gdzie odbywa się cały proces logowania admina. |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 260 Pomógł: 34 Dołączył: 22.02.2010 Ostrzeżenie: (0%) ![]() ![]() |
Ale przeciez tego nie przekazujesz zobacz:
index.php
zalogowany.php logowanie.php
Zrob sobie te 3 pliczki i zobacz jak to dziala.... chociaz dziwie sie ze nie wiesz jak zrobic logowanie dla admina jak masz normalne logowanie. Zmiennych sesyjnych sie nie przekazuje .. sa to zmienne sesyjne czyli istnieja dopoki nie ma np: session_destroy(); Ten post edytował wiiir 29.04.2010, 09:46:31 |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 652 Pomógł: 47 Dołączył: 6.02.2010 Skąd: Radom Ostrzeżenie: (0%) ![]() ![]() |
W bazie danych masz np. tabele rejestracja , i tam sa dajmy na to 4 kolumny
user/pw/repeatpw/ranga Tworzysz sesje/tablice -> $_SESSION['UserStatus'] = $result[0]['status'];
|
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 25 Pomógł: 0 Dołączył: 31.07.2009 Ostrzeżenie: (0%) ![]() ![]() |
Nie zrozumieliśmy się.
Ja nie chciałem kontynuować sesji użytkownika, lecz otworzyć zupełnie nową dla admina - z warunkiem, że sesja admina może być otwarta tylko wtedy, gdy sesja konkretnego użytkownika jest aktywna. @gigzorr podsunął mi pomysł jak rozwiązać problem w inny sposób. Dzięki |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 14.08.2025 - 01:48 |