$_SESSION eltűnik egy idő múlva ?
Sziasztok!
Írtam egy nagyon egyszerű beléptetőt session-nal, ami mindössze két oldal között próbálná fenntartani a kapcsolatot. Az első az index.php, ami belépett felhasználó számára linket mutat a 'másik' oldalra, ha nincs belépve akkor pedig egy beléptető formot.
A 'másik' oldal egy visszalinket tartalmaz az index-re.
Működne is szépen, oda vissza lehet ugrálni, de érdekes módon egy idő után törlődik a $_SESSION tömb. Ez kb egy perc körül van.
Nem értem miért?
Krisz
index.phpés a masik.php
■ Írtam egy nagyon egyszerű beléptetőt session-nal, ami mindössze két oldal között próbálná fenntartani a kapcsolatot. Az első az index.php, ami belépett felhasználó számára linket mutat a 'másik' oldalra, ha nincs belépve akkor pedig egy beléptető formot.
A 'másik' oldal egy visszalinket tartalmaz az index-re.
Működne is szépen, oda vissza lehet ugrálni, de érdekes módon egy idő után törlődik a $_SESSION tömb. Ez kb egy perc körül van.
Nem értem miért?
Krisz
index.php
- <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
- <?php session_start();?>
- <html>
- <head>
- <title>Kiszab V1.0</title>
- <meta name="generator" content="Bluefish 1.0.7">
- <meta name="author" content="">
- <meta name="date" content="2010-08-16T10:20:59+0200">
- <meta name="copyright" content="">
- <meta name="keywords" content="">
- <meta name="description" content="">
- <meta name="ROBOTS" content="NOINDEX, NOFOLLOW">
- <meta http-equiv="content-type" content=""""""text; charset=UTF-8" >
- <meta http-equiv="content-type" content="application/xhtml+xml; charset=iso-8859-2">
- <meta http-equiv="content-style-type" content="text/css">
- <meta http-equiv="expires" content="0">
- </head>
- <body>
- <?php
- print_r ($_SESSION);
- $user = $_POST['my_user'];
- $pass = $_POST['my_pass'];
- $sess = $_SESSION['mehet'];
- // Nincs bejelentkezve
- if (!isset($_SESSION['mehet']))
- {
- // Meg nem is prbalt bejelentkezni
- if (!isset($_POST['my_user']))
- {
- // Elso lepes, jelentkezzunk be!
- echo "<form method='post' action='";
- print $_SERVER['PHP_SELF'];
- echo "'>\n";
- echo " <table border=1 align='center'>\n";
- echo " <tr>\n";
- echo " <td><label for='my_user'>Név:</label></td>\n";
- echo " <td><input type='text' name='my_user'</td>\n";
- echo " </tr>\n";
- echo " <tr>\n";
- echo " <td><label for='my_pass'>Jelszó:</label></td>\n";
- echo " <td><input type='password' name='my_pass'></td>\n";
- echo " </tr>\n";
- echo " <tr>\n";
- echo " <td colspan=2 align='center'><input type='submit' value='Elküld'></td>\n";
- echo " </tr>\n";
- echo " </table>\n";
- echo "</form>\n";
- }
- else
- {
- // bejelentkezesi kiserlet megvolt, ellenorzes
- if (($_POST['my_user'] == "user") and
- ($_POST['my_pass'] == "pass"))
- $_SESSION['mehet'] = 1;
- }
- }
- if ($_SESSION['mehet'] == 1)
- {
- echo " <table cellpadding='5' cellspacing='2' border='0' align='center'>\n";
- echo " <tr><td><a href='masik.php'><h1>Demo oldal</h1></a></td></tr>\n";
- echo " </table>\n";
- }
- if (($_SESSION['mehet'] != 1)
- and
- (isset($_POST['my_user'])))
- {
- echo "<a href='index.php'><br>Vissza a fõoldalra ...<hr></a><br><br>\n";
- echo " <table cellpadding='5' cellspacing='2' border='0' align='center'>\n";
- echo " <tr><td><a href=''><h1>Azt hiszem, ez most nem jött be!</h1></a></td></tr>\n";
- echo " </table>\n";
- }
- ?>
- </body>
- </html>
- <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
- <?php session_start();?>
- <html>
- <head>
- <title>Kiszab V1.1</title>
- <meta name="generator" content="Bluefish 1.0.7">
- <meta name="author" content="Gyarmati Krisztián">
- <meta name="date" content="2010-08-16T10:21:05+0200">
- <meta name="copyright" content="">
- <meta name="keywords" content="">
- <meta name="description" content="">
- <meta name="ROBOTS" content="NOINDEX, NOFOLLOW">
- <meta http-equiv="content-type" content=""""""text; charset=UTF-8" >
- <meta http-equiv="content-type" content="application/xhtml+xml; charset=iso-8859-2">
- <meta http-equiv="content-style-type" content="text/css">
- <meta http-equiv="expires" content="0">
- </head>
- <body>
- <?php
- print_r ($_SESSION);
- include ("./setup.php");
- // Program start pontja
- echo "<a href='index.php'><br>Vissza a fõoldalra ...<hr></a><br><br>\n";
- if ($_SESSION['mehet'] == 1)
- {
- echo "<table cellpadding='5' cellspacing='2' border='1' align='center'>\n";
- echo "<tr>\n";
- echo "DEMO OLDAL";
- echo "</tr>\n";
- echo "</table>\n";
- }
- else
- echo "<h1>Na ez nem lesz így jó</h1>\n";
- ?>
- </body>
- </html>
session_start()
(Nem igazán érhető, hogy mi akarna ez lenni: 1. van session timeout, de az biztos nem egy perc, 2. ha meg nem jó a kódod, akkor meg egy percig miért csinálja meg..?)
update: esetleg a hiba lehet a setup.php-ban. Annak a tartalma nem látszik. Keress rá a kódodban az összes session változóra és nézd végig, hogy miket csinálsz vele, nincs-e valahol session megszüntetés, ami egy hibás feltétel miatt lefuthat.
Jogos az észrevétel, de a
Viszont amit csatoltam, az valódi file-ok tartalma, amiket valóban feltöltöttem, és valóban a fenti hibát produkálják. :(
A session_start() átkerült az első sorba.
Egyébként meg lehet nézni működés közben, itt van feltöltve
A user az user, a jelszó meg pass.
Az általad is feszegetett kérdések tesznek a sírba lassan. Konkrétan hogy miért működik amikor működik, és később meg miért nem??
Ez a session timeout miféle állat? Meg lehet nézni valahogy az aktuális értékét?
update: A böngészőt már kizártam, mert seamonkey alatt is csinálja, meg firefox alatt is.
Krisz
ini_set / php paraméterek
- session.gc_maxlifetime
- session.gc_divisor
- session.cookie_lifetime
A gc (garbage collector) törli a php sessionfájlokat bizonyos idő után a session.save_path elérési útról.
Ez már nekem kicsit kezd
de ha már itt tartunk, azt elfelejtettem mondani, hogy nem saját a php szerver, hanem ultraweb-es. Mondjuk ezt mondhattam volna hamarabb is. Nade másnak nincs ilyen gondja? Nincs valakinek egy _működő_ példaprogramja?
Krisz
Csekkit: here.
Csekkoltam. A php.ini a
Nem hiszem el, hogy ilyen bonyolult lenne ez a probléma :(
masik.php
masik.php
issession_start
-tal kezdődik?Igen, természetesen azzal
Megvan az oka, ne
Sajnos csak az ok van meg, megoldás valószínűleg a költözés lesz :(
Itt írja hogy miért
Azért köszi a próbálkozást!
Krisz
Saját session kezelés