關(guān)于session_cache_expire 的理解
|
【編輯:C1GStudio.com】 session_cache_limiter,它是session在客戶端的緩存方式,有nocache,private,private_no_expire,publice主這幾種。
cache是屬于瀏覽器的特性,它決定你瀏覽網(wǎng)頁(yè)的緩存方式,沒(méi)有緩存的情況會(huì)使你按瀏覽的“后退”鍵時(shí)提示要你更新連接,之前的內(nèi)容就沒(méi)有了,比如你填入的表單信息,都被丟失。 通過(guò)header("Cache-Control: no-store, no-cache, must-revalidate");函數(shù)也一樣達(dá)到效果。
然而,session的處理機(jī)制里,就強(qiáng)制自動(dòng)調(diào)用了header函數(shù)設(shè)置cache,這個(gè)置就由php.ini中的缺省值session.cache_limiter值或由session_cache_limiter函數(shù)設(shè)定所取代。
session_cache_limiter內(nèi)的幾個(gè)參數(shù)意義是: nocache:當(dāng)然是不緩存(比如:表單信息被清除),但公共變量可以緩存 private:私有方式緩存(比如:表單信息被保留,但在生存期內(nèi)有效) private_no_cache:私有方式但不過(guò)期(表單信息被保留) publice:公有方式,(表單信息也被保留)
它們之間的具體區(qū)別,我還不是太清楚,可以區(qū)別的是除nocache外其它的都可以緩存,private方式還受生存期影響,這個(gè)生存期應(yīng)該是由session.cache_expire給定,它在php.ini中設(shè)置或session_cache_expire函數(shù)設(shè)置,缺省是180分鐘。
不過(guò),我做過(guò)試驗(yàn),設(shè)置session.cache_expire置為1分鐘,但實(shí)際情況不起作用,cache過(guò)一分鐘后還是不過(guò)期,我的測(cè)試代碼在下面,希望高手指點(diǎn)是什么原因,多謝!
<?PHP if (isset($_POST[‘username‘])) { $sess_lim = array("none","nocache","private","private_no_expire","public");
session_cache_expire(1); session_cache_limiter( $sess_lim[2] );
session_start(); $_SESSION["username"] = $_POST[‘username‘]; ++$_SESSION["count"] ; echo "<pre>"; print_r($_SESSION); echo "</pre>"; echo "</ p></ br>"; echo ‘sessID:‘.session_id();
}; ?> <form action="" method="post"> <input type="text" name="username" value="<?php echo $_SESSION[‘username‘]?>"> <input type="submit" name="Submit" value="提交"> </form> </ br>
<?PHP //phpinfo(); echo "expire:".session_cache_expire()."分鐘"; ?>
另外,瀏覽器緩存的工作機(jī)理是什么?它對(duì)靜態(tài)或動(dòng)態(tài)的內(nèi)容是如果管理控制的?
|
|