Avatar billede gider_ikke_mere Nybegynder
09. april 2005 - 19:15 Der er 18 kommentarer og
2 løsninger

Mister variabler sat i session

Jeg har en hjemmeside med login som gemmer brugernavn som session. Efter ca 20 minutters inaktivitet mister man sin adgang. Hvad kan der være galt?
Avatar billede busschou Praktikant
09. april 2005 - 19:18 #1
alle sessioner stopper efter 20 min med mindre du specificerer en længere leve tid
Avatar billede barklund Nybegynder
09. april 2005 - 19:20 #2
Hvilket kan læses og/eller sættes via:

http://dk.php.net/manual/en/function.session-cache-expire.php

--
Morten Barklund
Avatar billede gider_ikke_mere Nybegynder
09. april 2005 - 19:23 #3
Barklund: Og den skal kun sættes på loginsiden eller hvad (session_cache_expire)
Avatar billede barklund Nybegynder
09. april 2005 - 19:28 #4
Læs om funktionen? Der står præcist hvor den skal bruges.
Avatar billede bromer Nybegynder
09. april 2005 - 19:28 #5
Det står jo fint på manualsiden. Det skal du gøre hver gang du kalder session_start()
Avatar billede gider_ikke_mere Nybegynder
09. april 2005 - 19:30 #6
Ja jeg så det lige...
Avatar billede gider_ikke_mere Nybegynder
14. april 2005 - 17:33 #7
Nå, nu har jeg prøvet det af. Jeg logger ind, surfer lidt rundt på hjemmesiden og går fra computeren i en ½ time. Når jeg kommer tilbage har jeg kun adgang på de sider jeg før surfede rundt på i den nye satte tid i session_cache_expire. Alle andre sider er der ikke adgang til!

Hjælper det at sætte session_register("status"), på hver side eller hvad?
Avatar billede hyberpreprocessor Nybegynder
14. april 2005 - 17:35 #8
og du har stadig ikke læst manualen kan man se.

session_register("status") er alt for gammel, brug $_SESSION til alting.
En session dør hvis den ikke ændres (resettes) iløbet af expire time.
Avatar billede gider_ikke_mere Nybegynder
14. april 2005 - 17:43 #9
Jamen hvorfor mister jeg så min session på de sider jeg ikke har besøgt?
Avatar billede barklund Nybegynder
14. april 2005 - 17:46 #10
Tror du ikke nærmere, at det skyldes, at de øvrige sider er cachede? Prøv at ændre dine caching indstillinger i din IE til noget mere logisk - for eksempel "Opdater ved hvert besøg på siden".
Avatar billede gider_ikke_mere Nybegynder
14. april 2005 - 17:49 #11
Ja, men det kan jeg jo ikke bede alle besøgende om!
Avatar billede barklund Nybegynder
14. april 2005 - 18:02 #12
Så kast nogle anti-caching headers efter dem.
Avatar billede barklund Nybegynder
14. april 2005 - 18:03 #13
Og derudover ser jeg det som et fint argument, at hvis en besøgende brokker sig over caching på et website, jeg har lavet og de bruger IE og ikke kan sætte den op, så er det et glimrende svar: "Sæt din browser ordentligt op eller lad være med at brokke dig"
Avatar billede barklund Nybegynder
14. april 2005 - 18:03 #14
...selvfølgelig formuleret lidt pænere :)
Avatar billede gider_ikke_mere Nybegynder
16. april 2005 - 09:12 #15
På min loginside bruger jeg:
øverst:
<?php
session_cache_limiter('private');
$cache_limiter = session_cache_limiter();
session_cache_expire(180);
$cache_expire = session_cache_expire();
session_start();
$loginbruger = $_REQUEST['brugernavn'];
$loginpass = md5($_REQUEST['passworddata']);

... og efter kontrol i MySql

if ($loginbruger == $brugernavn && $loginpass == $pass){
session_register("status");
$_SESSION['status'] = "tjahvemved";
#samt nogle andre parametre

... og springer til mit frameset med body onload

I min topframe som indeholder alle linksene til siderne samt alle andre sider sætter jeg nu:
<?php
session_cache_limiter('private');
$cache_limiter = session_cache_limiter();
session_cache_expire(180);
$cache_expire = session_cache_expire();
session_start();
$loginok = $_SESSION['status'];
if ( $loginok == "tjahvemved") {?>
#og her htmlkoden som danner siden

... og slutter af med

<?php
} else {
?>

<html>
<head>
<title>login fejl</title>

</head>

<body background="/pics/main/backgrnd3.jpg">
Du har ikke adgang til denne side.
</body>
</html>

<?php
}
?>

Og så vender vi igen tibage til udgangsspørgsmålet: Hvorfor virker det ikke!
Avatar billede gider_ikke_mere Nybegynder
24. juni 2005 - 15:23 #16
Jeg har opgivet og er gået over til cookies!!!
Avatar billede gider_ikke_mere Nybegynder
10. september 2005 - 01:24 #17
Sessions er noget ged at arbejde med når man ikke selv styrer Severen. Jeg har kigget i mange forskellige fora, og der er åbenbart ikke nogen der kan få brugen af Sessions til at virke efter hensigten. Ikke en eneste af dem der stiller spm. om sessions får det til at virke. Derfor er jeg gået over til cookies selv om jeg mener det er noget fanden har skabt.
Avatar billede barklund Nybegynder
10. september 2005 - 16:40 #18
Ingen der kan få sessions til at virke? Sikke noget okse at fyre af - jeg bruger fint sessions mange steder uden problemer.
Avatar billede barklund Nybegynder
10. september 2005 - 16:40 #19
Exp.dk bruger sessions :)
Avatar billede gider_ikke_mere Nybegynder
12. september 2005 - 07:59 #20
Det jeg mener er at alle de steder hvor jeg har fundet folk som mangler hjælp til at komme ud over den timeout på session som deres webhotels server er sat op til, er der ikke nogen som har kunnet få det til at virke, incl. undertegnede i dette indlæg! Der er ikke nogen som i 2 mdr. har svaret på mine problemer, derfor har jeg lukket.

Jeg kunne nu også sagtens få sessions til at fungere med de 20 minutter som mit webhotel var sat op til, og det var utrolig nemt at have med at gøre. Jeg kunne bare ikke få en løsning på at komme ud over de 20 minutter, hverken her på Eksperten.dk eller andre steder.
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