2010-01-14 63 views
0

我在我的PHP 5.1.0腳本的頂部使用session_cache_limiter()和session_cache_expire(),在session_start()之前。我session_cache_limiter(),session_cache_expire()和session_start()

從PHP的幫助:

[...]你要打電話每 要求 session_cache_limiter()(和之前在session_start()是 調用)。

但是如果我不打電話給session_start()怎麼辦?會話session_cache_limiter()和session_cache_expire()會在session_start()後面工作嗎?

謝謝!從"PHP: session_cache_limiter"直取

回答

0

實例關閉php.net

<?php 
/* set the cache limiter to 'private' */ 
session_cache_limiter('private'); 
$cache_limiter = session_cache_limiter(); 
echo "The cache limiter is now set to $cache_limiter<br />"; 
?> 

而且,它取決於你的工作,功能將被調用的定義,並不會拋出一個錯誤,如果session_start()不叫,但那毫無意義。這些功能的目的是用於會話,並且爲了使用需要調用的會話,您需要session_start()

+1

如果session_start()沒有被調用,session_cache_limiter()是否仍然發送頭文件? – 2010-01-14 19:42:47

+0

在上面給出的例子中,其值'private'評估爲發送的特定頭部,我可以簡單地想象這樣一個事實:該示例用於改變發送的頭部而不調用session_start()安東尼 – 2010-01-14 19:51:06

+1

Anthony , 該函數僅僅修改session.cache_limiter的值(該值在每個請求處以INI文件中指定的默認值開始),與調用ini_set('session.cache_limiter','private')相同。 原因是必須在session_start()之前調用,因爲session_start()輸出會話頁面所需的所有標題,包括緩存標題(由session.cache_limiter值確定) – eCaroth 2010-01-14 20:12:05

1

不,ssession_cache_limiter和session_cache_expire只是修改php用於session.cache_limiter和session.cache_expire(在session_start()中生成會話頭時使用的值) - 函數實際上並不實際發送頭,否則你不能在session_start()之前使用它們()