Kezdőoldal » Számítástechnika » Weblapkészítés » PHP-ban hogyan érdemes kezelni...

PHP-ban hogyan érdemes kezelni a különböző felhasználókat?

Figyelt kérdés
Gondolom sessionokkal, de nem értem, hogy lehet a Sessionokat erre felhasználni. $_SESSION['valami'] -be mentem az adott sessionID-t? vagy van hatékonyabb megoldás is?

2012. ápr. 23. 19:11
 1/5 anonim ***** válasza:

Oldalbetöltés

|

cookie['azenfaszaoldalam_user'] üres

|

cookie['azenfaszaoldalam_user']-be generál egy karaktersorozatot (mondjuk 32 karakter)

|

ezt a karaktersorozatot lementi adatbázisba (pl sessions tábla)

|

a táblában tetszőleges mezőket használsz (pl userid int unsigned, sessionid varchar(32), useragent text, ip varchar(11), lastrefresh timestamp)

2012. ápr. 23. 19:48
Hasznos számodra ez a válasz?
 2/5 anonim ***** válasza:
regisztrált júzereket meg a users táblába és ennek az idját updatelgeted a sessions táblában (ha nincs bejelentkezve akkor 0, egyébként ugye az id)
2012. ápr. 23. 19:49
Hasznos számodra ez a válasz?
 3/5 anonim ***** válasza:

Magukat a felhasználókat, az adataikat adatbázisban tárold.


A belépésnél ebből ellenőrzöd, hogy stimmel-e a beírt jelszó hash az eltárolttal (mert ugye nem tároljuk a jelszó, csak a hash értékét!), ha igen, akkor a session-be be lehet állítani, hogy belépett a felhasználó, illetve le lehet benne tárolni adatokat is.


Elég akár csak egy $_SESSION['belepett'] adatot true-ra tenni és utána ezt megnézni, ugyanis a session a SZERVER oldalon tárolódik, a felhasználó (a sütivel ellentétben) nem tudja piszkálni.



A session működését az előző válaszoló szemléltette.

A lényege, hogy a session azonosítóját (id) eltárolja a felhasználó böngészője, a szerver ez alapján a süti alapján tudja, hogy melyik session adatok tartoznak hozzá.


Persze ez az ID önmagában másolható, szóval bele szoktak tenni IP címe ellenőrzést, illetve böngésző "típus" ellenőrzést is.

(Ezeket simán a belépésbél szintén letárolják a sessionben és minden ellenőrzésnél megnézik, hogy egyezik-e a felhasználó IP címe és a böngésző azonosítója a tárolt értékekkel. Ha nem, akkor simán érvénytelenítik a munkamenetet, mert esélyes, hogy valaki ellopott egy session ID-t.)


Maguk a session ID-k elég hosszú, random értékek, az ütközésnek és a kitalálásnak kicsi az esélye. (Illetve az ütközést a szerver a session id generálásnál kiküszöböli.)



Ezen kívül lehet "házilag" is session-t "csinálni", például ha te generálsz "session id"-t, amit egy adatbázisban tárolsz a hozzá tartozó adatokkal. Ez kicsit macerásabb, most nem részletezem, mivel az sima session is jól működik.



Technikailag ugyan úgy használható, mint a sima sütik, csak annyi a különbség, hogy a felhasználó nem tud benne matatni kedvére.

2012. ápr. 23. 21:34
Hasznos számodra ez a válasz?
 4/5 anonim ***** válasza:
Annyi különbség van még a cookie-kal szemben, hogy ha a felhasználó bezárja a böngészőt a session megszűnik. Ha újra megnyitod a lapot, már nem lesz érvényes (pl kiléptet) A cookienak van lejárati ideje, ha újra megnyitod a böngészőt még mindig érvényes lesz a benne tárolt érték, amíg a határidő nem jár le (pl belépve marad).
2012. ápr. 24. 10:42
Hasznos számodra ez a válasz?
 5/5 anonim ***** válasza:

Ez is csak részben igaz.

Megoldható, hogy megmaradjon és a működésük között JELENETŐS eltérés van, de ezt korábban részleteztem is.


[link]

2012. ápr. 24. 10:47
Hasznos számodra ez a válasz?

Kapcsolódó kérdések:




Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!