2013-08-29 47 views
0

我正在開發一個需要使用會話的網站。然而,會話壽命的默認值是1440秒或24分鐘。我試圖用ini_set()來改變這個,確保把ini_set()放在session_start()之前,然後用ini_get()檢查它。 ini_get()返回我設置的值,但會話似乎仍遵循默認規則集。主機是否可以鎖定php ini設置?

那麼主機是否可以鎖定編輯ini設置?

+0

哪個網絡服務器? – wallyk

+0

我相信我在apache上使用linux。 – user2126881

+0

是的。主持人可以強制他們想要的任何設置,或者如果他們願意,可以禁止您進行更改。特別是在外部文件如會話的地方,他們可以做自己的垃圾收集。 –

回答

0

簡答:可能。

這可能是因爲他們已經通過disable_functions指令在全局php.ini中禁止使用ini_set,但這並不能解釋您所看到的行爲;該文檔尚不明確,但如果您調用禁用的函數,我希望它會引發錯誤,也不能解釋爲什麼ini_get返回您之前設置的內容。他們也完全可能運行他們自己的補丁版本的PHP來改變這種行爲。不是聞所未聞,但不太可能。

事情嘗試:

  • session_set_cookie_params,而不是設置它(必須是前session_start),你設置正確參數(session.cookie_lifetime
  • 雙重檢查和您的ini_set之前肯定放置session_start,或者在其他地方沒有其他session_start
+0

是的,我已經完成了這兩個。那麼他們必須禁用它們。使用會話進行用戶登錄時,有點煩人。我有一個與他們聊天tommrow關於它:) – user2126881

-1

喚醒器是肯定的。

該php代理有3個作用域。

1系統

這一個影響所有的應用程序。它是global.ini文件。他們可以 也禁用覆蓋。

2 Perdir

這是你的php.ini文件。它隻影響你的目錄。在這裏可以 您禁用腳本範圍覆蓋項,並允許

3時腳本

這是ini_set範圍使該 系統範圍覆蓋。允許

所以有可能是一臺主機鎖定的INI設置編輯時,它可以覆蓋perdir &系統 範圍是什麼?

是的,他們可以禁用覆蓋系統範圍內。

+1

真的嗎?你有資源嗎?從[文檔說](http://uk3.php.net/manual/en/configuration.changes.php),它在我看來像這些被烘烤到PHP中,不能修改PHP本身。所以,如果一個屬性被'PHP_INI_ALL'標記爲可更改的,我不會看到如何通過PHP_INI_SYSTEM改變它。 – BenLanc

相關問題