ugrás a tartalomhoz

Hogyan tudnám megcsinálni, hogy 1 loginnal 1 ember ha ellép más oldalra akkor is bejelentkeve maradjon?

én · 2006. Már. 15. (Sze), 11.09
Szóval az a problémám, hogy folyamatosan kilétet minden regizett felhasználót a rendszer ha ellép más oldalra! És nemtudom, hogy hogyan tudnám megcsinálni, hogy mondjuk még az oldal elhagyása után 30 percig bejelentkezve maradjon! Lehet, hogy nagonhülye a kérdésem de csak 12 éves vagyok!! LÉTSZI SEGÍTSETEK!
 
1

session vagy cookie

ballor · 2006. Már. 15. (Sze), 11.13
nézd meg a linket: php.net, talán ez segít majd ;)
2

session

Dualon · 2006. Már. 15. (Sze), 11.14
Nem tudom, milyen a "regizett" felhasználó, de "folyamatos kiléte" hiányában valószínűleg halott lenne. Ráadásul a lét ugyan szíves, de korántsem kedves: maradjunk inkább a légyszívesnél. A központozás pedig 12 felett már kötelező. ,) Köszönöm!

A session kezelés lesz a Te barátod. A weblabor cikkek között is találsz erről bőséggel, illetve a hu.php.net-en a magyar nyelvű, on-line dokumentációban is.
3

Bocs!

én · 2006. Már. 15. (Sze), 11.23
Bocs! Most nézem, hogy a kilétet=kiléptet! :D Bocsi elírtam! Köszi a segítséget!
4

Hogyan kérdezzünk okosan

janoszen · 2006. Már. 15. (Sze), 11.40
Kedves Jégkocka!

Mint azt már egy másik postod nyomán elmondtam, de úgy tűnik, kevés hatással, olvasd el a "hogyan kérdezzünk okosan" c. irományt. A LÉGYSZI SEGÍTSETEK mondatod semmire nem volt jó. Anélkül is segítünk.

Mindazonáltal a postjaidban rohamos javulást vélek felfedezni, úgyhogy nem is panaszkodom.

A beléptetőrendszerhez ajánlom a "Munkamenetkezelés alapjai" cikksorozatot innen a Weblaborról.

Üdv

János
5

session _ cookie?

Anonymous · 2006. Már. 16. (Cs), 23.44
cookie idejét beállítottad?
vagy 0 ?
mert ha igy ha elhagyja a területet a süti lejár.
6

session != cookie

Anonymous · 2006. Már. 17. (P), 13.57
A session és a süti nem ugyanaz, mégha hasonló dolgot is művelnek.
7

Alapjában véve...

-zsolti- · 2006. Már. 17. (P), 14.33
...sessionre és cookiera lesz szükséged. A belépés státusza mindig sessionben van (mint ahogy gondolom most is), a cookie-ban csak feljegyzed az ID-jét (pl. "19"), hogy majd ha újra az oldalra érkezik, tudd, hogy őt a 19 ID-jű userként kell azonosítani. Ez így azonban támadható, hiszen ha létrehozok a gépemen egy 19 tartalmú megfelelő cookie-t, máris be tudok lépni a nevében. Ezért jó még ha emelle letárolsz egy másik cookiet, amiben egy hash segítségével visszaellenőrzöd az ID-t (ergo ez a kulcs az ID-hez). Persze ez sem a legbiztonságosabb, de majd aki tud jobbat kijavít.

Először a belépés rész (csak nagyjából összehányva, az elv miatt):
<?php
// beléptetted, majd kiolvastad az adatbázisból 
// az ID-jét (példában továbbra is: '19')

// ez vonatkozik "mostanra", ez a két $_SESSION 
// kell ahoz, hogy "belépett" legyen a státusza
$_SESSION['logged'] = true;
$_SESSION['userId'] = 19;

// ez a $_COOKIE majd akkor lesz visszaolvasva
// ha bezárás után visszatér, DE nincs $_SESSION
setcookie('userID', '19', ......);

// szintén. ez a $_COOKIE a "kulcs"
setcookie('idChecker', hashCookieId(19), ......);
...
// Függvény: elkészíti az ID alapján a visszalellenőrző salted hash
// kulcsot, ami biztosítja, hogy érvényes, valódi az ID
function hashcookieId($userId) {
  return sha1('H0Hsijs8'.$userId.'11sd5a34');
}
?>
Ez pedig már az a kódrészlet, ami minden oldal elejére mehet, ahol a login státuszt ellenőrizni kell:
<?php
if(!$_SESSION['logged'] && isset($_COOKIE['userId']) { // nincs belépve, de van cookie
  if($_COOKIE['idChecker'] == hashCookieId($_COOKIE['userId'])) {
    // helyes az ID-hez tartozó hash kulcs, beléphet
    // és kaphat "true" sessiont      
    $_SESSION['logged'] = true;
    $_SESSION['userId'] = $_COOKIE['userId'];
    
    // oldal újratöltése, vagy elirányítás a személyes oldalára 
  }
  else {
    echo 'Nem jó a cookied!';  
  }
}
?>
8

nem szakértő hozzászólás

Táskai Zsolt · 2006. Már. 17. (P), 14.58
nekem szimpatikus a megoldás. csak annyit tennék hozzá, hogy a hashbe jó lenne belevenni valami szerveroldalon tárolt, változó adatot, pl. a bejelentkezés idejét, vagy ilyesmit.
Tasi