Valcha Posted November 22, 2010 Report Share Posted November 22, 2010 (edited) Būtiba - vēlos, lai sesijas dati nepazustu 24 stundu garumā. Pašlaik ir tā, ka sesija pazūd un pārģenerējas sessijas id, ja taimauts ir mazliet zem 60 minūtēm. Esmu pārlasījis pusi gogles, risinājumu nerodu. Nedarbojas ne uz Win, ne uz Linux. PHP versija 5. Pēc būtības vajadzētu iztikt ar: ini_set('session.gc_maxlifetime', '86400'); ini_set('session.gc_probability', 1); ini_set('session.gc_divisor', 1); /* arī šo rindiņu mēģināju, man izskatījās, ka viņa darbojās galīgi ne - ok */ ini_set('session.cookie_lifetime', 86400); Patiesībā šis ne vella neadarbojas. Mēģināju arī samazināt sesijas laiku uz 10 sekundēm, arī nekas nemainās - dati nedzēšas. Varbūt kāds palīdzēs ar padomu? - - - PHP sesijas conf: Directive Local Value Master Value session.auto_start Off Off session.bug_compat_42 Off Off 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_httponly Off Off session.cookie_lifetime 86400 0 session.cookie_path / / session.cookie_secure Off Off session.entropy_file no value no value session.entropy_length 0 0 session.gc_divisor 1 1000 session.gc_maxlifetime 86400 1440 session.gc_probability 1 1 session.hash_bits_per_character 5 5 session.hash_function 0 0 session.name PHPSESSID PHPSESSID session.referer_check no value no value session.save_handler files files session.save_path no value no value session.serialize_handler php php session.use_cookies On On session.use_only_cookies On On session.use_trans_sid 0 0 Edited November 22, 2010 by Valcha Quote Link to comment Share on other sites More sharing options...
Леший Posted November 22, 2010 Report Share Posted November 22, 2010 Browseris seivo to laiku kaut kur dziļi savos temp settingos. Pats uz šo uzrāvos reizes 3, viņš atcerās session time no pirmās reizes, un pēc tam vari mainīt, cik gribi - viņš vienalga atcerās to pirmo. Palīdzēja tikai browsera reinstall. Un tas laikam bija tikai mozillai. Quote Link to comment Share on other sites More sharing options...
marrtins Posted November 22, 2010 Report Share Posted November 22, 2010 (edited) Uzstādi savu session.save_path un, protams, iztīri vecos cookies. Леший, khmm... ņja. Cookies iztīrīji? :) Edited November 22, 2010 by marrtins Quote Link to comment Share on other sites More sharing options...
Valcha Posted November 22, 2010 Author Report Share Posted November 22, 2010 Man šī problēma ir uz visiem pārlūkiem bez izņēmuma! Mēģināju arī uzinstalēt Opera pārlūku, kas agrāk nebija - tā pati problēma. Tiešām nedomāju, ka browsera problēma... Bet paldies par ideju! Quote Link to comment Share on other sites More sharing options...
Леший Posted November 22, 2010 Report Share Posted November 22, 2010 marrtins, protams, ka tīrīju. Ar šo problēmu nācās pasēdēt 3 dienas. Neatradu risinājumu. Quote Link to comment Share on other sites More sharing options...
Valcha Posted November 22, 2010 Author Report Share Posted November 22, 2010 (edited) Pievienoju jaunu session path: ini_set('session.gc_maxlifetime', 3); ini_set('session.gc_probability', 1); ini_set('session.gc_divisor', 1); ini_set ('session.save_path', 'c:\session'); session_start(); $_SESSION['cnt'] = isset ($_SESSION['cnt']) ? $_SESSION['cnt']+1 : 0; print_R ($_SESSION); Iztīru, protams, arī cookies, bet tāpat vecā dziesma. Jaunajā direktorijā sessijas fails rakstās, bet neko... Pozitīva skripta iznākuma gadījumā būtu jābūt, ka session['cnt'] = 0, ja 3 sekundes ir neaktīvs... - - - Directive Local Value Master Value session.auto_start Off Off session.bug_compat_42 Off Off 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_httponly Off Off 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 1 1000 session.gc_maxlifetime 3 1440 session.gc_probability 1 1 session.hash_bits_per_character 5 5 session.hash_function 0 0 session.name PHPSESSID PHPSESSID session.referer_check no value no value session.save_handler files files session.save_path c:\session no value session.serialize_handler php php session.use_cookies On On session.use_only_cookies On On session.use_trans_sid 0 0 Edited November 22, 2010 by Valcha Quote Link to comment Share on other sites More sharing options...
marrtins Posted November 22, 2010 Report Share Posted November 22, 2010 Es nepaļautos uz gc_*, lai kontrolētu precīzus sessijas timeoutus. Labāk ievies $_SESSION['started']=time(); un if(time() - $_SESSION['started'] > 3)session_destroy(); Likt session.gc_probability un session.gc_divisor uz 1 ir absurds, sapratīsi, kad būs daudz daudz pieprasījumu sekundē :) Quote Link to comment Share on other sites More sharing options...
Valcha Posted November 22, 2010 Author Report Share Posted November 22, 2010 marrtin, bet kā tad man tas sessija variablis $_SESSION['started'] būs pieejams, ja sessija pēc ~ 50 minūtēm dzēšas? Varbūt vakars un labi nedomājas.. :) Man kaut kā izskatās, ka velk uz sessijas glabāšanu datubāzē. Vai tiešām nav variantu, kā vienkārši ar php iebūvētām funkcijām panākt 24h ilgu sessiju? Quote Link to comment Share on other sites More sharing options...
marrtins Posted November 22, 2010 Report Share Posted November 22, 2010 Nav obligāti datubāzē. Priekš kā tev $_SESSION['started'], ja sessija ekspirējusies? Uzliec session.gc_maxlifetime uz 24h (3600 * 24). Ja nekas tajā sesijā netiks darīts 24h, tad arī sesijas fails tiks izdzēst ar varbūtību ņemot vērā gc_probability un gc_divisor. Bet visādi citādi čeko pēc $_SESSION['started'] (vai $_SESSION['updated'] - kā nu vajadzīgs). $_SESSION['started'] updeito uz time() katreiz, kad notiek kāda darbība sesijā. Ja sesijas ID glabā cepumos, tad session.cookie_lifetime arī uzstādi uz 24*3600. Quote Link to comment Share on other sites More sharing options...
Martiny Posted November 23, 2010 Report Share Posted November 23, 2010 Vai tu izmaiņas veici pareizā php.ini failā? Quote Link to comment Share on other sites More sharing options...
Martiny Posted November 23, 2010 Report Share Posted November 23, 2010 Pēs izmaiņu veikšanas parstartē WEB serveri (Apache). Quote Link to comment Share on other sites More sharing options...
marrtins Posted November 23, 2010 Report Share Posted November 23, 2010 Tu neredzi, ka viņš ar ini_set ņemās? Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.