Autor Zpráva
Pavel W.
Profil *
Dobré ráno...
mám na stránce možnost změnit obsah, když je v odkazu change=1 přepne se uživatel do módu změn, kde pak může psát nějaké texty a tak
to že je v módu změny se pak přenáší v session aby to nadále nehyzdilo adresu:
session_start();
if(isset($_GET['change'])){
if($_GET['change']==1){
$_SESSION['change']=true;
}else{
unset($_SESSION['change']);
}
}

Jenže nepříjemné je, a stává se že po určité stejné době od vzniku session! ta session zmizí a dopsaný text se pak neuloží
předpokládal bych, že session zmizí po určité době kdy uživatel naposled kontaktoval stránku a né po době od jejího založení
přidal jsem teda do scriptu ještě:
if((isset($_SESSION['change']))&&($_SESSION['change']==true)){
$_SESSION['change']=true;
}

Aby se session zakládala pořád znovu, jenže to bohužel nic nevyřešilo... pořád problém přetrvává, po určité době na stránce prostě kliknu na editaci něčeho, což de jen v módu změny, ani né minutu něco píšu a při uložení už je session zrušená a text ztracen.
jrm
Profil
Nevím jestli to vidím správně, ale pokud nepřeneseš change=1, tak sessions smažeš. Zkus to smazání sessions udělat jinak, třeba až při odhlášení. Nebo ji nechej prostě vypršet...
Pavel W.
Profil *
To bude asi nějakej omyl... je pokud GET['change'] a nemá hodnotu 1 tak se SESSION['change'] smaže, jinak dostane hodnotu true a ta se přenáší mezi stránkami
jenže SESSION['change'] vyprší po určité době od jejího založení pomocé GET['change'] = 1
problém co bych potřeboval napovědět je jak udělat aby nevypršela... aby se při každém novém průvěhu scriptu nějak obnovila/znovu založila/prodloužila platnost, nebo tak něco
Alphard
Profil
máte na každé stránce session_start()?
aby se při každém novém průvěhu scriptu nějak obnovila/
o to by se právě mělo starat session_start() automaticky

jrm se asi ztratil v těch vnořených podmínkách, pokud je odsadíte, je to mnohem přehlednější
session_start();
if(isset($_GET['change'])){
  if($_GET['change']==1){
    $_SESSION['change']=true;
  }else{
    unset($_SESSION['change']);
  }
}
Pavel W.
Profil *
session_start() mám na začátku indexu do kterého se pak includují další stránky... tam session_start() není, ale ono by to už ani nešlo protože předtím už se vypisoval text.
Skutečně ale $_SESSION['change'] po čase zmizí... a je to vždy stejná doba po tom, co přišlo $_GET['change']=1
špatně se to testuje, protože je to celkem dlouhá doba ale že to není doba po posledním provedení scriptu vím jistě.
EagleEye
Profil *
Čau, já bych řekl, že ta session ti zmizí, protože vyprší její platnost. Zkus si nastavit její platnost takhle nějak:

session_cache_expire(30);
tohle nastavi platnost session na 30 minut.

Jinak podrobnější info nalezneš na
http://cz2.php.net/session_cache_expire

Čau a doufám, že sem ti pomohl ;)
EagleEye
Profil *
Jo a abych nezapoměl. Natsavení platnosti session musí být před fcí session_start()
lamatér
Profil *
Jo
session_cache_expire();
mi moc pomohla díky
Pavel W.
Profil *
Skutečně... v defaultním nastavení jsem měl 18 minut... mod dík
kartovo
Profil *
session_cache_expire(30);
to je fce na zjisteni nastavene hodnoty v php.ini, ale ne fce k prirazeni hodnoty, musis pouzit ini_set('session_cache_expire', 30)

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: