Autor | Zpráva | ||
---|---|---|---|
Pavel W. Profil * |
#1 · Zasláno: 19. 8. 2008, 10:57:21
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 |
#2 · Zasláno: 19. 8. 2008, 12:08:24
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 * |
#3 · Zasláno: 19. 8. 2008, 13:08:17
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 |
#4 · Zasláno: 19. 8. 2008, 13:15:33
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 * |
#5 · Zasláno: 19. 8. 2008, 15:28:13
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 * |
#6 · Zasláno: 20. 8. 2008, 09:34:17
Č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); Jinak podrobnější info nalezneš na http://cz2.php.net/session_cache_expire Čau a doufám, že sem ti pomohl ;) |
||
EagleEye Profil * |
#7 · Zasláno: 20. 8. 2008, 09:37:43
Jo a abych nezapoměl. Natsavení platnosti session musí být před fcí session_start()
|
||
lamatér Profil * |
#8 · Zasláno: 20. 8. 2008, 14:36:33
Jo
session_cache_expire(); mi moc pomohla díky |
||
Pavel W. Profil * |
#9 · Zasláno: 20. 8. 2008, 16:26:17
Skutečně... v defaultním nastavení jsem měl 18 minut... mod dík
|
||
Časová prodleva: 1 rok
|
|||
kartovo Profil * |
#10 · Zasláno: 11. 10. 2009, 19:33:25
„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) |
||
Časová prodleva: 15 let
|
0