Avatar billede Slettet bruger
30. januar 2003 - 20:00 Der er 13 kommentarer og
3 løsninger

Ændre timeout for sessions uden adgang til php.ini ??

Hej!

Kan jeg ændre timeouten for sessions på serveren uden at kunne ændre i opsætningen?

Lige nu står den til 3 timer, det er nok lige lidt for meget. Jeg forestillede mig noget med et kvarter.
Avatar billede mr.meincke Nybegynder
30. januar 2003 - 20:02 #1
<%
Session.TimeOut = 60*15
%>

//> Mr.Meincke
Avatar billede mr.meincke Nybegynder
30. januar 2003 - 20:02 #2
Lol...Sry... Troede det var asp ... men virker det ikke med:
"Session_timeout" eller sådan noget?
Avatar billede Slettet bruger
30. januar 2003 - 20:10 #3
Hehe...nej, det er sørme PHP ;)

Det jeg skal bruge det til er at jeg har en indkøbskurv som gemmer varerne sammen med brugerens session id.

Det ville så være rart at brugeren når der er gået et kvarter ikke kan tilgå varerne i kurven længere. Så hans session altså bliver enten slettet eller ændret.

Spm. er så om man kan det. Normalt destrueres en session jo først når brugeren lukker browseren.
Avatar billede sukos Juniormester
30. januar 2003 - 20:23 #4
hmm, uden at ha' tjekket efter, ser det ud som om du kan bruge:
session_cache_expire()

i forbindelse med en
ini_set()

Har dog ikke testet det af, men det har jeg med det her:

if (isset($_SESSION['tid'])) {
    if($_SESSION['tid'] < time()) {
$_SESSION = array();
session_destroy();
//Evt. blot slette nogle af de sessions du sætter
//Evt. sæt en ny session til brug for visning af tekst
}else{
$_SESSION['tid'] = time()+600; //10 minutter
    }
}

$_SESSION['tid'] er jo så lig med den tid i sek. som den blev sat på første gang
Avatar billede Slettet bruger
30. januar 2003 - 20:27 #5
Hmmm...jeg har prøvet at lege med session_set_cookie_params() og session_cache_expire(), men uanset om jeg sætter dem begge til 1 (minut) kan jeg efter 3 minutter bare opdatere siden, og kigge lige ned i indkøbsvognen ;)

Men det jeg bruger session id til er det her:

$sql = 'SELECT id, vare_id, session_id, SUM(antal) AS tempantal FROM varekurv WHERE session_id = "' . session_id() . '" GROUP BY vare_id';

$result = mysql_query($sql);

if (!mysql_num_rows($result)) {
echo "Ingen varer i kurven";
} else {
alt det andet pjat
}

Men ændres session id'en ikke ved timeout? Det troede jeg nemlig...
Avatar billede sukos Juniormester
30. januar 2003 - 20:27 #6
Jeg sætter så $_SESSION['tid'] ved login, og på alle andre sider bliver ovenstående includet, men vil da lige se en gang hvad den session_cache_expire() kan :O)
Avatar billede sukos Juniormester
30. januar 2003 - 20:30 #7
Jahh, det er jo nok måden den bliver sat på i første omgang, og så senere bliver tjekket/opdateret som gør at der går "ged" i den ??? (session_cache_expire() )
Avatar billede sukos Juniormester
30. januar 2003 - 20:37 #8
hmm, der er jo en del at "ta' hånd om" for at det skal fungere rigtigt, alt efter hvad "default" er i php.ini, så umiddelbart hælder jeg nu mest til det jeg selv bruger lige for tiden :O)
Avatar billede Slettet bruger
30. januar 2003 - 21:05 #9
Sagen er at mine brugere ikke skal logge ind for at handle, men jeg laver bare noget sjov med det timestamp som alle varer i db'en får når de lægges i kurven.

Så kan jeg altid rode med det når jeg får tid...
Avatar billede sukos Juniormester
30. januar 2003 - 21:17 #10
Hver gang der lægges en vare, skal du vel registrere en "tid"-session.
Som opdateres eller ikke, alt efter "alder"
Avatar billede Slettet bruger
02. februar 2003 - 11:38 #11
Jeg har valgt at give de sammenhængende varer et tidsstempel i db'en når de sælges. Så kan jeg klare det den vej.

sukos> Svar? :)
Avatar billede sukos Juniormester
02. februar 2003 - 22:14 #12
jah, hvorfor ik' ? :O)
Avatar billede josini Nybegynder
03. februar 2003 - 14:46 #13
På Apache kan du sikkert også klare det med en .htaccess, der indeholder: php_value session.gc_maxlifetime 900
Avatar billede sukos Juniormester
03. februar 2003 - 18:08 #14
hov, jeg glemte vist at svare!
Avatar billede sukos Juniormester
03. februar 2003 - 18:08 #15
damn, igen!
Avatar billede Slettet bruger
03. februar 2003 - 18:10 #16
hehe...
Alle skal have tak for deres input!
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester