Munkamenet adatok nem jönnek újra elő
Üdv!
Sürgősn kéne segítség! A helyzet a következő:
Van egy php oldalam, ami indít egy sessiont. Ha a user bejelentkezik, akkor a $_SESSION[] tömböt feltölti az adatbázisból kiolvasott adatokkal, és ezzel belépteti a usert. Ezt megcsinálja jól.
A baj, viszont, hogy ezek után bármilyen linkre kattintok az oldalon, a $_SESSION[] tömb kiürül, és ennek következtében a usert kilépteti a program.
A linkek az alábbi formátumban vannak megadva: $_SERVER['PHP_SELF']."?page=linkcelja".
Aztán a programnak pedig be kéne includeolnia a linkcelja.inc.php-t. De ehelyet kiüríti a $_SESSION[]-t.
A php.iniben a session beállításaim:
session.save_handler = files
session.save_path = .\tmp
session.use_cookies = 0
session.name = PHPSESSID
session.auto_start = 1
session.cookie_lifetime = 0
session.cookie_path = /
session.cookie_domain =
session.serialize_handler = php
session.gc_probability = 1
session.gc_divisor = 100
session.gc_maxlifetime = 1440
session.bug_compat_42 = 1
session.bug_compat_warn = 1
session.referer_check =
session.entropy_length = 0
session.entropy_file =
session.cache_limiter =
session.cache_expire = 180
session.use_trans_sid = 0
■ Sürgősn kéne segítség! A helyzet a következő:
Van egy php oldalam, ami indít egy sessiont. Ha a user bejelentkezik, akkor a $_SESSION[] tömböt feltölti az adatbázisból kiolvasott adatokkal, és ezzel belépteti a usert. Ezt megcsinálja jól.
A baj, viszont, hogy ezek után bármilyen linkre kattintok az oldalon, a $_SESSION[] tömb kiürül, és ennek következtében a usert kilépteti a program.
A linkek az alábbi formátumban vannak megadva: $_SERVER['PHP_SELF']."?page=linkcelja".
Aztán a programnak pedig be kéne includeolnia a linkcelja.inc.php-t. De ehelyet kiüríti a $_SESSION[]-t.
A php.iniben a session beállításaim:
session.save_handler = files
session.save_path = .\tmp
session.use_cookies = 0
session.name = PHPSESSID
session.auto_start = 1
session.cookie_lifetime = 0
session.cookie_path = /
session.cookie_domain =
session.serialize_handler = php
session.gc_probability = 1
session.gc_divisor = 100
session.gc_maxlifetime = 1440
session.bug_compat_42 = 1
session.bug_compat_warn = 1
session.referer_check =
session.entropy_length = 0
session.entropy_file =
session.cache_limiter =
session.cache_expire = 180
session.use_trans_sid = 0
session_start()
<Nincs cím>
De azért kösz :)
<Nincs cím>
session_start()
Igy nem adja át az adatokat a másik PHP oldalnak.
Én is szívtam ezzel :
Próbáld az oldalad legelejére tenni a session_start()-t.
persze, sehogy nem megy át a munkamenet azonosító!
use_trans_sid
ki van kapcsolva, tehát meg sem próbálja a PHP átadni űrlapban és linkekben az azonosítót, ause_cookies
pedig ugyanúgy ki van kapcsolva, tehát sütit sem fog beállítani. Magyarul semmilyen módon nem állítja be a PHP a kliensnél a munkamenet azonosítót.Most akkor ezalapján milyen feltételezés vezet téged arra, hogy a dolognak működnie kellene? Ha a kliens nem kapja meg az azonosítót (akár a PHP segítségével, akár a kódod megfelelő elkészítésével), akkor nem is fogja visszakapni, következésképpen nem fogja tudni, hogy milyen klienssel van dolga, és nem tudja elővenni a hozzá tartozó adatokat. Ha nem akarod, hogy a PHP a kimeneten átírjon linkeket és űrlapokat, akkor neked kell gondoskodni, hogy mindenütt feltűnjön a munkamenet azonosító a kimeneten, ahol kell, és ugyanez igaz a sütikre is.
<Nincs cím>
<Nincs cím>
URL
session_start()
<?php
session_start();
$_SESSION['PA']="session adat";
?>
<a href='PB.php' >PB hívása</a>
pb.php :
<?php
session_start();
echo $_SESSION['PA'];
?>
ennek mennie kell , akkor mükszik a session
tmp
--
Aries
http://aries.mindworks.hu
<Nincs cím>
Azért kösz az ötleteket :)
Nem egyértelmű
üdv,
Zila
ott van
include("../inc/".$_GET['page'].".page.php");
A session_start(); pedig ott van az elején.
Más: megpróbáltam cookiekkal is, úgysem müxik.
unset
<Nincs cím>
if ($_GET['logout'] == 1 || (!empty($sid) && empty($_SESSION['samurai_id'])))
{
session_unset();
session_destroy();
}
Ez az egyetlen session_unset() az egész progiban.