Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [php][sesje] równoległe sesje, kilka, wiele, równoległe
tomq
post
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
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 8)
marcio
post
Post #2





Grupa: Zarejestrowani
Postów: 2 291
Pomógł: 156
Dołączył: 23.09.2007
Skąd: ITALY-MILAN

Ostrzeżenie: (10%)
X----


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 biggrin.gif chyba o to chodzi ;p


--------------------
Zainteresowania: XML | PHP | MY(SQL)| C# for .NET | PYTHON
http://code.google.com/p/form-builider/
Moj blog
Go to the top of the page
+Quote Post
Cienki1980
post
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
Go to the top of the page
+Quote Post
tomq
post
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 winksmiley.jpg problem się pojawił kiedy chciałem usunąć te dane z sesji - wtedy padały wszystkie aktywne sesje ...

pozdrawiam,
Tomasz
Go to the top of the page
+Quote Post
marcio
post
Post #5





Grupa: Zarejestrowani
Postów: 2 291
Pomógł: 156
Dołączył: 23.09.2007
Skąd: ITALY-MILAN

Ostrzeżenie: (10%)
X----


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 biggrin.gif i tak samo na stronie user'a sprawdzaj czy sesja user zostala wyslana w przeciwnym przypadku robisz else z echo('Blad musisz sie zalogowac'); chyba dobrze mowie druga metoda ktora teraz sobie obmyslilem to zrobic tabele admin z 2 kolumnami admin_login i admin_pass admin o tak

_________________________
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 biggrin.gif mam nadzieje ze na cos sie przyda

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
Go to the top of the page
+Quote Post
dzobert
post
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.
Go to the top of the page
+Quote Post
marcio
post
Post #7





Grupa: Zarejestrowani
Postów: 2 291
Pomógł: 156
Dołączył: 23.09.2007
Skąd: ITALY-MILAN

Ostrzeżenie: (10%)
X----


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
Go to the top of the page
+Quote Post
Cienki1980
post
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
Go to the top of the page
+Quote Post
gam3r
post
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...
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 Aktualny czas: 22.08.2025 - 05:10