![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 2 Pomógł: 0 Dołączył: 19.09.2007 Ostrzeżenie: (0%) ![]() ![]() |
Witam,
Czy jest możliwość korzystania z dwóch lub więcej sesji równocześnie? Chciałbym, żeby sesja administratora "nie gryzła się" z sesją użytkownika? Dokładnie chodzi mi o to, żeby wywołanie session_unset() niszczyło tylko zmienne sesji użytkownika. Może funkcje session_name(), session_module_name() mogą mieć jakieś zastosowanie? W manualu jest bardzo skromnie o nich ... Ktoś mi wspominał o wywoływaniu session_start() z parametrem, ale nie znalazłem nic na ten temat ... pozdrawiam, Tomasz |
|
|
![]() |
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 2 291 Pomógł: 156 Dołączył: 23.09.2007 Skąd: ITALY-MILAN Ostrzeżenie: (10%) ![]() ![]() |
czesc nie jestem dobry w te kolcki ale jesli masz 2 sesje
$_SESSION['user'] i $_SESSION['admin'] to mozesz usunac tylko jedna z nich robia tak unset($_SESSION['user']); albo admin poprostu session_unset usywa wszystkie aktywne sesje a unset tylko ta ktora chcesz ![]() -------------------- Zainteresowania: XML | PHP | MY(SQL)| C# for .NET | PYTHON
http://code.google.com/p/form-builider/ Moj blog |
|
|
![]()
Post
#3
|
|
![]() Grupa: Przyjaciele php.pl Postów: 1 590 Pomógł: 40 Dołączył: 11.01.2007 Skąd: Centrum Ostrzeżenie: (0%) ![]() ![]() |
A możesz mi powiedzieć dlaczego potrzebujesz mechanizm dwóch sesji ?
Może kombinujesz jak koń pod górę nad rzeczą, którą można zrobić zupełnie inaczej. -------------------- 404
|
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 2 Pomógł: 0 Dołączył: 19.09.2007 Ostrzeżenie: (0%) ![]() ![]() |
marcio - niestety moje sesje mają wiele zmiennych - a nie tylko jedną ...
Cienki1980 - ogólnie chciałbym rozgraniczyć zmienne sesyjne administratora i użytkownika - chciałbym uniknąć sytuacji gdyby ktoś kiedyś coś dopisując powielił ich nazwy ... a sytuacja, w której coś takiego by mi się przydało wynikła podczas tworzenia formularza wielostopniowego (kilka podstron - kilka kroków) - danych nie chciałem zapisywać do bazy już po pierwszym kroku, więc po prostu wrzuciłem je do sesji ![]() pozdrawiam, Tomasz |
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 2 291 Pomógł: 156 Dołączył: 23.09.2007 Skąd: ITALY-MILAN Ostrzeżenie: (10%) ![]() ![]() |
no w sumie pan moderator ma racje mozesz to zrobic na 2 sesjach lub na jedenj i robic if'em tak
masz formularz z 2 inputami login i haslo i zeby wejsc na admina robisz tak if($_POST['login']==admin && $_POST['haslo']==haslo_admina) { $_SESSION['admin']; header(Location="admin.php"); } else { $_SESSION['user']; header(Location="user.php"); } i potem na stronie admin.php sprawdzaj czy sesja admina zostala wyslana np tak if(isset($_SESSSION['admin'])) { //reszta skryptu } lub bez isset ![]() _________________________ admin_login | admin_pass | ____________|____________ | mniej wiecej wiesz o co chodz potem robisz zapytanie sql do bazy mniej wiecej takie mysql_query('SELECT admin_login, admin_pass from admin'); aha oczywiscie zapomnailbym recznie zapisujesz login i haslo admina w bazie potem porownujesz je if'em o tak if($_POST['login']==admin_login && $_POST['haslo']==admin_pass) { //i reszta skryptu dla admina np tak if(file_exist(./admin_panel.php)) { include('admin_panel.php'); } } tylko nie wiem czy dobrze porownywuje wartosci z bazy z tymi z formularza jesli nie to powiedzice jak bo sam mam z tym problem Oczywiscie to tylko idea jak mozesz zrobic panel admina wedlug mnie ![]() ops napisales posta wczesniej odemnie i chyba napisalem cos co nie ma nic wspolnego z twoim problemem a nawet jesli nie ma to powiedzicie jak sie porownuje dane z bazy z tymi wpisanymi przez user'a -------------------- Zainteresowania: XML | PHP | MY(SQL)| C# for .NET | PYTHON
http://code.google.com/p/form-builider/ Moj blog |
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarejestrowani Postów: 46 Pomógł: 1 Dołączył: 30.06.2006 Skąd: okolice Warszawy Ostrzeżenie: (0%) ![]() ![]() |
Przecież $_SESSION to tablica, więc możesz zrobić tak $_SESSION[namespace][zmienna] = zmienna. I wszystkie zmienne masz rozgraniczone.
|
|
|
![]()
Post
#7
|
|
![]() Grupa: Zarejestrowani Postów: 2 291 Pomógł: 156 Dołączył: 23.09.2007 Skąd: ITALY-MILAN Ostrzeżenie: (10%) ![]() ![]() |
nie romiem mozesz podac przyklad na moim kodzie tam gdzie porownuje zmienne z bazy i te od user'a ;p
$zap = mysql_query('SELECT admin_login, admin_pass from admin'); while($log_pass = mysql_num_row($zap)) { if($_POST['login']==$log_pass[0] && $_POST['haslo']==$log_pass[1]) { $page = "admin_panel" //i reszta skryptu dla admina np tak if(file_exist(./admin_panel.php)) { include('./basename($page.'php')); } } tak to ma wygladac??wiem ze mozna to zrobic za pomoca mysql_fetch_assoc i potem tablice robic tak $log_pass['admin_login'] ale chce sie nauczyc dobrze korzystac z tablic numerycznej Ten post edytował marcio 23.09.2007, 21:12:13 -------------------- Zainteresowania: XML | PHP | MY(SQL)| C# for .NET | PYTHON
http://code.google.com/p/form-builider/ Moj blog |
|
|
![]()
Post
#8
|
|
![]() Grupa: Przyjaciele php.pl Postów: 1 590 Pomógł: 40 Dołączył: 11.01.2007 Skąd: Centrum Ostrzeżenie: (0%) ![]() ![]() |
marcio zastosuj się do rady dzoberta i wykorzystaj:
podczas logowania zapisuj dane do $_SESSION['user'] np z takimi wartościami: - $_SESSION['user']['login']=$login; - $_SESSION['user']['log_date']=$data_logowania; - $_SESSION['user']['privs']=$znacznik // znacznik który będzie określał czy user zalogowany jest adminem czy zwykłym userem podczas obrabiania formularza zapisuj dane do $_SESSION['formularz'] Potem możesz wyczyścić dane za pomocą unset($_SESSION['formularz']) ( albo możesz je nadpisać $_SESSION['formularz']=array(); ) ... $_SESSION['user'] będzie nieruszona. PS. do wszystkich piszących powyżej .. proszę poprawić BBCOde. -------------------- 404
|
|
|
![]()
Post
#9
|
|
![]() Grupa: Zarejestrowani Postów: 148 Pomógł: 0 Dołączył: 8.06.2005 Ostrzeżenie: (0%) ![]() ![]() |
zawsze możesz rozszerzyć podstawowy mechanizm sesji PHP i zaimplementować go według własnego wzorca...
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 22.08.2025 - 05:10 |