Avatar billede learner Praktikant
26. oktober 2009 - 10:04 Der er 5 kommentarer og
1 løsning

Holde session i live - auto refresh

Hejsa :o)

Jeg har en webshop hvor jeg har mistanke om at folk sommetider mister indholdet i deres indkøbskurv. Det sker når session udløber. Men jeg har forlænget session levetid så meget man kan. Men kan man ikke lave et simpelt lille javascript eller noget andet, som efter fx 15 min lige refresher noget i baggrunden. Altså ikke total refresh af siden, men noget i et hjørne, eller bagved i det skjulte.

Possible?
Avatar billede j4k0b Nybegynder
26. oktober 2009 - 10:23 #1
> Men jeg har forlænget session levetid så meget man kan

Hvilken platform/framework er det du har valgt, som ikke kan gemme sessions længere end 15 minutter? ^^
Avatar billede learner Praktikant
26. oktober 2009 - 10:39 #2
Det er PHP. Og jeg har endnu ikke lykkes at lave evig levetid. Kun op il 50 minutter, men det er sikkert ahfængig af browser også.

Selvom man indstiller PHP til at bevare sessions i 1 døgn, så gør den det ikke ifølge mine erfaringer
Avatar billede michael_stim Ekspert
26. oktober 2009 - 11:53 #3
Læg den i en cookie i stedet. Når bruger så er færdig med sine indkøb kan du slette værdierne i cookien. Desuden burde 50 min. være mere end rigeligt til at foretage sine indkøb.
Avatar billede learner Praktikant
26. oktober 2009 - 12:02 #4
Det er ikke så let som det lyder at lave om til cookies, desuden er der nogle kunder som ikke  tillader cookies. at ændre systemet er ret omfangsrigt...

Er der nogen, som har en løsning der kan holde session i live?

Måske et lille javascript, der åbner et vindue i baggrunden??? Der må da være nogen som har lavet noget lign det. Jeg har søgt uden held
Avatar billede milo Nybegynder
26. oktober 2009 - 12:32 #5
Det ville blive løst bedst og smartest med en ajax request der bliver kørt i et givent interval.

Bruger du nogle javascript frameworks? Fx jQuery? Hvis du har jQuery skal der ikke mere til end fx dette:

new Ajax.Request('keepalive.php', {});

Hvad du gør i keepalive bestemmer du selv - jeg plejer at opdatere et "last_activity" timestamp felt, i db'en.

Hvis du skal lave noget simpelt interval kan du gøre sådan:

function keepalive() {
  new Ajax.Request('keepalive.php', {});
  setTimeout("keepalive()", 120000);
}
Avatar billede learner Praktikant
26. oktober 2009 - 21:40 #6
Kanon. lige hvad jeg skulle bruge :o)
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