$_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