Avaleht
uus teema   vasta Tarkvara »  WWW »  Sessiooni kestvus, ei kipu toimima. märgi kõik teemad loetuks
märgi mitteloetuks
vaata eelmist teemat :: vaata järgmist teemat
Hinnavaatlus :: Foorum :: Uudised :: Ärifoorumid :: HV F1 ennustusvõistlus :: Pangalink :: Telekavad :: HV toote otsing
autor
sõnum Saada viide sõbrale.  :: Teata moderaatorile teata moderaatorile
otsing:  
jnt
HV Guru
jnt

liitunud: 10.05.2005



Autoriseeritud ID-kaardiga

sõnum 29.03.2009 14:17:42 Sessiooni kestvus, ei kipu toimima. vasta tsitaadiga

Teeme siis kiiresti. Kood on selline:
<?php
ini_set('session.gc_maxlifetime', 30758400);
if($_COOKIE['remember']=='1' || $_POST['remember']=='1'){
   setcookie('remember', '1', time()+30758400);
   session_set_cookie_params(30758400);
}else{
   session_set_cookie_params(3600);
}
session_start();
?>


Ja probleem on selles, et sessiooni kestus ei muutu ~aastaks, kui remember'iks on üks. Samas küpsis "remember" luuakse kenasti ära. Sessioon seisab pidevalt ühe tunni peal, olenemata, kas remember on pandud 1'ks või mitte. Milles asi? Tuulasin netis ka natuke ja pmst seal selline asi toimis. Teine võimalus oli ka, mis leidsin, et salvestada küpsistesse kasutaja ja parool, kui remember on 1, kuid see on veidi ebaturvaline siiski ju? Seega, kus ma olen hetkel puusse pannud?

_________________
Progemisest: https://byteaether.github.io/
Seisab keldris vana 386-486-Pentium1? Räägime! Ehk saan vanakesele uue elu anda. icon_wink.gif
Vaata siia, äkki müün midagi põnevat -> https://www.osta.ee/index.php?fuseaction=listing.seller&q[seller]=jnt
Kommentaarid: 110 loe/lisa Kasutajad arvavad:  :: 2 :: 0 :: 102
tagasi üles
vaata kasutaja infot saada privaatsõnum
inzinz
HV kasutaja

liitunud: 26.01.2005




sõnum 29.03.2009 15:00:25 vasta tsitaadiga

Proovi midagi sellist
<?php
$sessyear = 30758400;
$sesslen = $sessyear;
ini_set('session.gc_maxlifetime', $sessyear);
error_reporting(E_ALL & ~E_NOTICE);
if($_COOKIE['remember']=='1' || $_GET['remember']=='1'){
   setcookie('remember', '1', time()+$sesslen);
}else{
   $sesslen = 3600;
}
session_set_cookie_params($sesslen);
session_start();
setcookie(session_name(), session_id(), time()+$sesslen);
?>

Oluliseks osaks on just setcookie väljakutsumine, nimelt PHPSESSID küpsise olemasolu puhul ei kipu php seda uuesti browserisse saatma ja seega ka ei uuene sessiooni lõppemise aeg. Kui setcookie niimoodi ära teed siis peaks töötama ilusti.

_________________
Upload.ee - eestimaine failiupload
Kommentaarid: 4 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 4
tagasi üles
vaata kasutaja infot saada privaatsõnum
jnt
HV Guru
jnt

liitunud: 10.05.2005



Autoriseeritud ID-kaardiga

sõnum 29.03.2009 22:22:39 vasta tsitaadiga

inzinz, selge, ühesõnaga vaja käsitsi sessioni küpsis üle kirjutada? Arusaadav. thumbs_up.gif Tänud!

EDIT: Kahjuks omamoodi kurvad uudised. Nimelt lood sellised, et sessioni küpsis on küll kenasti olemas ja värki, kuid serverist kaob sessiooni info kahjuks ikka ära. Oskab keegi nõu anda? On keegi sessionidel login'i progenud koos meelde jätmise funktsiooniga? Kuidas lahendasid? Igastahes jah, ei kipu asi toimima praegu.

_________________
Progemisest: https://byteaether.github.io/
Seisab keldris vana 386-486-Pentium1? Räägime! Ehk saan vanakesele uue elu anda. icon_wink.gif
Vaata siia, äkki müün midagi põnevat -> https://www.osta.ee/index.php?fuseaction=listing.seller&q[seller]=jnt
Kommentaarid: 110 loe/lisa Kasutajad arvavad:  :: 2 :: 0 :: 102
tagasi üles
vaata kasutaja infot saada privaatsõnum
inzinz
HV kasutaja

liitunud: 26.01.2005




sõnum 29.03.2009 23:17:09 vasta tsitaadiga

Proovi ini_get funciga kas sul sessiooni see maxlifetime on sama.
Ja lisaks ütleks veel niipalju, et kui sa teed eri failides session_start eri loogikaga, siis lähebki metsa.
Näiteks ühes kohas määrad ära maxlifetime, teises kohas mitte. Kui sessioon lõppeb siis jooksutatakse garbage collecti liiga väikese väärtusega ja kustuvad ära kõik liiga vanad failid ja ongi sinu sessiooni info kadunud.

Lisavõimalus on see, et miski asi serveris puhastab php'st eraldiseisvalt /tmp kausta, proovi näiteks teha endale eraldi sessioonide kaust 777 õigustega ja panna session_save_path('/minu/sess/kaust/'); Siis on kindel et keegi sealt kaustast faile ei näpi peale php koodi.

_________________
Upload.ee - eestimaine failiupload
Kommentaarid: 4 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 4
tagasi üles
vaata kasutaja infot saada privaatsõnum
näita postitusi alates eelmisest:   
uus teema   vasta Tarkvara »  WWW »  Sessiooni kestvus, ei kipu toimima.
[vaata eelmist teemat] [vaata järgmist teemat]
 lisa lemmikuks
näita foorumit:  
 ignoreeri teemat 
sa ei või postitada uusi teemasid siia foorumisse
sa ei või vastata selle foorumi teemadele
sa ei või muuta oma postitusi selles foorumis
sa ei või kustutada oma postitusi selles foorumis
sa ei või vastata küsitlustele selles foorumis
sa ei saa lisada manuseid selles foorumis
sa võid manuseid alla laadida selles foorumis



Hinnavaatlus ei vastuta foorumis tehtud postituste eest.