19. oktober 2006 - 17:31Der er
31 kommentarer og 1 løsning
Sessions render ud efter 2 sek
Hejsa
Jeg har lige skiftet hotel til servage, og på mit tidligere hotel virkede sessions fint. Men på denne render sessionsene ud lige efter man er logget ind i mit communit. jeg har prøvet at indsætte php_value session.gc_maxlifetime 34400 i .htaccess men uden held
We regret for the inconvenience caused to you. :( May I request you to use the following directive in the .htaccess file and check if it works php_value session.gc_maxlifetime 14400 After this the phpinfo() should show the results 14400 as the Local Value for the session.gc_maxlifetime. If the session expiry problem still persists, you may think about cookies. It's possible that your cookie is expiring before the gc_maxlifetime. session.cookie_lifetime 0 (until browser is closed) session.cookie_secure Off session.use_cookies On session.use_only_cookies Off session.referer_check no value
You may also have a look at session_set_save_handler() . If you use session_set_save_handler() you can write code into your fuctions to get the user's IP and save it in the same table as their session data. But again, I am sorry to say that we are unable to help you with the codings.
Hvorfor virker det ikke bare? jeg mener, det skal da bare virke. De må da vide om de har lavet noget om i opsætningen, som kan have indflydelse på sessions...
Det lyder jo som om at de virkelig ikke aner hvorfor der er problemer med sessions!?
Jeg går ud fra at du selvfølgelig har en session_start() som det første i filen, som er uden for if-sætninger, includes osv... Så du er hundrede på at at session startes HVER gang?
Logger man ind igen, når den lige at skrive at man er logget ind. Så noget huskes da. Er du sikker på det ikke er din kode, fx. at du antager noget omkring register_globals. At du fx. bruger $user i stedet for $_SESSION['user'] ?
Det er meningen htx. Men altså alle mine sessions bruger jeg $_SESSION[xxxx] Feks når den tjekker om koden og password er ens gør jeg sådan if($_SESSION[navn] && $_SESSION[kode]) { }
Noget i retning af $_SESSSION['navn'] = $row_login[navn]; Og så efterfølgende ikke bruge $navn. Jeg kan ikke se hvorfor du skal gemme password i en sessions-variabel.
Og vær nu glad for at servage har valgt at slå register_globals fra. Det er et levn fra gamle dage, der både indeholder en potentiel sikkerhedsrisiko, og giver anledning til uoverskuelig kode. Det er vejen frem, men desværre gider typiske udbydere ikke gøre det, for så får man lidt mere travlt i supporten - som du selv har prøvet...
Også i toppen af hver community side gør jeg sådan her <?sesion_start(); if($_SESSION[navn] && $_SESSION[kode]) { echo "Viser community indhold"; } else { echo "login"; } ?>
Nu kan man bare slette ikke logge ind, den sender bare en tilbage til login,
hvorfor skriver du $kode = $password her 19/10-2006 22:05:11 men $_SESSION[kode] = $_POST[kode] her 20/10-2006 15:16:07 ? desuden kan du prøve at bruge isset når du tjekker de to session-variabler
Nu ved jeg ikke hvorfor du konsekvent nægter at skrive $_SESSION['navn'] som er det eneste korrekte, og det jeg siger du skal skrive, og i stedet for skriver $_SESSION[navn] - det må du altså til at lære... (dog giver det nok ikke anledning til din nuværende fejl)
Prøv med en testudskrift at se hvad der står i session-variablerne. Du har jo lavet en del om, som sw_red_6 anfører.
det var nu mere hvorfor du skriver password det ene sted og kode det andet sted. Hvis du får data fra en form med method="post" så skal du bruge superglobalen $_POST[], det er vi enige om ;o)
Jeg kan godt få "Du er allerede logget ind, ellers luk alle vinduer og log ind igen efter 1 min". Så noget huskes da. Ellers kan der være masser af andre steder du har fusket med at du forventer at register_globals er slået til. Hvad siger en <? phpinfo(); ?> om det, forresten?
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.