miért indul új munkamenet az oldal újratöltésekor?
Sziatok!
A kérdésem a következő lenne: miért indul új munkamenet az oldal újratöltésekor? Próbáltam utánanézni a manualban, kerestem a Weblabor fórumában és levlistáiban is, mellesleg az utóbbiban találtam egy hasonló hozzászólást, de sajnos arra nem érkezett válasz :(
Egy bejelentkező oldalt készítek és jelenleg még a legelején tartok: elkészítettem a formot, ami továbbítja az adatokat, valamint a programot, ami leellenőrzi a beérkező információt, majd továbbítja a felhasználót egy másik oldalra. Azonban a form elküldésekor minden esetben új session indul, vagy legalábbis új session_id kerül generálásra.
Ami még érdekesebbé teszi a helyzetet, hogy a két különböző szerveren is futtattam a kódot és míg az egyiken működött, a másikon előált ez a gond.
Mint írtam átolvastam az ide vágó cikkeket és a fórum hozzászólások nagy részét, így igyekszem leszögezni: az oldal elején (mindenféle kimenet előtt) ott a session_start függvény és a programkódban sehol nincs megszakítva a munkamenet.
A kód a következő:...Mivel szerintem nem a kódban lehet a probléma oka, bár azt nem állítom hogy tökéletes, mellékelem a phpinfo() függvény session kimenetét a két szerverről:
Ahol működik:
És ahol nem:
Kérlek benneteket, hogy ha van ötletetek osszátok meg velem!
Előre is köszi.
■ A kérdésem a következő lenne: miért indul új munkamenet az oldal újratöltésekor? Próbáltam utánanézni a manualban, kerestem a Weblabor fórumában és levlistáiban is, mellesleg az utóbbiban találtam egy hasonló hozzászólást, de sajnos arra nem érkezett válasz :(
Egy bejelentkező oldalt készítek és jelenleg még a legelején tartok: elkészítettem a formot, ami továbbítja az adatokat, valamint a programot, ami leellenőrzi a beérkező információt, majd továbbítja a felhasználót egy másik oldalra. Azonban a form elküldésekor minden esetben új session indul, vagy legalábbis új session_id kerül generálásra.
Ami még érdekesebbé teszi a helyzetet, hogy a két különböző szerveren is futtattam a kódot és míg az egyiken működött, a másikon előált ez a gond.
Mint írtam átolvastam az ide vágó cikkeket és a fórum hozzászólások nagy részét, így igyekszem leszögezni: az oldal elején (mindenféle kimenet előtt) ott a session_start függvény és a programkódban sehol nincs megszakítva a munkamenet.
A kód a következő:
echo "<div id=\"bejelentkezo\">\n";
echo "<h2 id=\"cimsor\">Bejelentkezés</h2>\n";
echo "<form name=\"belepes\" method=\"post\" action=\""._admin_oldal."?sid=".session_id()."&padmin=login\">\n";
echo "<div id=\"egyutt\">\n";
echo "<div id=\"felirat\">Felhasználónév:</div>\n";
echo "<div id=\"mezo\">\n";
echo "<input name=\"uinput\" type=\"text\" size=\"43\">\n";
echo "</div>\n";
echo "</div>\n";
echo "<div id=\"egyutt\">\n";
echo "<div id=\"felirat\">Jelszó:</div>\n";
echo "<div id=\"mezo\">\n";
echo "<input name=\"pinput\" type=\"password\" size=\"43\">\n";
echo "</div>\n";
echo "</div>\n";
echo "<div id=\"bejelent\"><input type=\"submit\" name=\"bejelent\" value=\"belép\"></div>\n";
echo "</form>\n";
echo "</div>\n";
if ( isset( $_POST['uinput'] ) == true AND isset( $_POST['pinput'] ) == true )
{
$this -> dstart();
$table = mysql_query("SELECT * FROM user WHERE felhasznalonev LIKE '".base64_encode($_POST['uinput'])."' AND jelszo LIKE '".base64_encode($_POST['pinput'])."'", $_SESSION['JOIN']);
$this -> dstop();
if ( mysql_num_rows( $table ) == 1 )
{
$_SESSION['user'] = mysql_result($table, 0, 'id');
echo "<script>window.location.replace('"._admin_oldal."?sid=".session_id()."');</script>";
}
else
{
echo "<script>window.location.replace('"._admin_oldal."?sid=".session_id()."&padmin=mess(3)');</script>\n";
}
}
else
{
echo "<script>window.location.replace('"._admin_oldal."?sid=".session_id()."&padmin=mess(0)');</script>\n";
}
Ahol működik:
session
Session Support enabled
Registered save handlers files user
Directive Local Value Master Value
session.auto_start Off Off
session.bug_compat_42 On On
session.bug_compat_warn On On
session.cache_expire 180 180
session.cache_limiter nocache nocache
session.cookie_domain no value no value
session.cookie_lifetime 0 0
session.cookie_path / /
session.cookie_secure Off Off
session.entropy_file no value no value
session.entropy_length 0 0
session.gc_divisor 100 100
session.gc_maxlifetime 1440 1440
session.gc_probability 1 1
session.name PHPSESSID PHPSESSID
session.referer_check no value no value
session.save_handler files files
session.save_path /tmps /tmps
session.serialize_handler php php
session.use_cookies On On
session.use_only_cookies Off Off
session.use_trans_sid On On
Session Support enabled
Registered save handlers files user
Directive Local Value Master Value
session.auto_start Off Off
session.bug_compat_42 On On
session.bug_compat_warn On On
session.cache_expire 180 180
session.cache_limiter nocache nocache
session.cookie_domain no value no value
session.cookie_lifetime 0 0
session.cookie_path / /
session.cookie_secure Off Off
session.entropy_file no value no value
session.entropy_length 0 0
session.gc_divisor 100 100
session.gc_maxlifetime 1440 1440
session.gc_probability 1 1
session.name PHPSESSID PHPSESSID
session.referer_check no value no value
session.save_handler files files
session.save_path /tmps /tmps
session.serialize_handler php php
session.use_cookies On On
session.use_only_cookies Off Off
session.use_trans_sid On On
És ahol nem:
session
Session Support enabled
Registered save handlers files user
Directive Local Value Master Value
session.auto_start Off Off
session.bug_compat_42 On On
session.bug_compat_warn On On
session.cache_expire 180 180
session.cache_limiter nocache nocache
session.cookie_domain no value no value
session.cookie_lifetime 0 0
session.cookie_path / /
session.cookie_secure Off Off
session.entropy_file no value no value
session.entropy_length 0 0
session.gc_divisor 100 100
session.gc_maxlifetime 1440 1440
session.gc_probability 0 0
session.name PHPSESSID PHPSESSID
session.referer_check no value no value
session.save_handler files files
session.save_path /var/lib/php4 /var/lib/php4
session.serialize_handler php php
session.use_cookies On On
session.use_only_cookies Off Off
session.use_trans_sid Off Off
Session Support enabled
Registered save handlers files user
Directive Local Value Master Value
session.auto_start Off Off
session.bug_compat_42 On On
session.bug_compat_warn On On
session.cache_expire 180 180
session.cache_limiter nocache nocache
session.cookie_domain no value no value
session.cookie_lifetime 0 0
session.cookie_path / /
session.cookie_secure Off Off
session.entropy_file no value no value
session.entropy_length 0 0
session.gc_divisor 100 100
session.gc_maxlifetime 1440 1440
session.gc_probability 0 0
session.name PHPSESSID PHPSESSID
session.referer_check no value no value
session.save_handler files files
session.save_path /var/lib/php4 /var/lib/php4
session.serialize_handler php php
session.use_cookies On On
session.use_only_cookies Off Off
session.use_trans_sid Off Off
Kérlek benneteket, hogy ha van ötletetek osszátok meg velem!
Előre is köszi.
win -> linux
Nekem hasonló jelenséget produkált, amikor nemrég win -> linux költöztem. Egyszerűen nem találtam semmi beállítási hibát, valamint a win szerveren ment is szépen az oldal.
Végül megtaláltam az egyik include-t, amit ha kiszedtem, eltünt a jelenség. Ennek tartalmát átmásoltam egy új fájlba, és minden rendbejött.
Csak feltételezni tudom h valami karakterkódolási hiba lehetett....
ez nem lehet...
A másik gond, hogy a szerver beállításaihoz nincs hozzáférésem :(
Session handler
SZMbe jutott valami...
Megpróbáltam a következőt: az admin oldalra hivatkozó linknél (itt indítom a munkamenetet is a session_starttal) már átadom a session_id-t (gondoltam azért indul újra meg újra el a munkamenet, mert az admin oldalon hívom meg a session_start-ot), de ekkor az admin oldalon nem is érzékelte a munkamenetet.
session.save_path írható, session_id() visszatérési értéke
válaszok
A tárhely fizetős (dream.hu).
Ők mit mondanak a problémára?
Ha lesz konstruktívabb ötletem is, feltétlenül megírom. :)