[英]Practice to use session_start()
我應該使用
session_start()
要么
if (session_id() == ""){
session_start();
}
因為我沒有記錯,沒有后者,還會出現另一條錯誤消息?
PHP> = 5.4.0版本的推薦方法
if (session_status() == PHP_SESSION_NONE) {
session_start();
}
資料來源: http : //www.php.net/manual/en/function.session-status.php
對於PHP <5.4.0版本
if(session_id() == '') {
session_start();
}
兩者都應該滿足您的要求。
我這樣做是為了阻止會話劫持。 然后只需在每個頁面的開頭調用該函數。
public function start_session()
{
session_start();
if (rand(1, 10) == 5)
{
session_regenerate_id();
}
}
好的做法是始終將session_start()
放在代碼的開頭,無論遇到什么情況。
來自session_id()
的官方PhP文檔:
session_id()返回當前會話的會話ID,如果沒有當前會話(不存在當前會話ID),則返回空字符串(“”)。
這是一個如何檢查現有的session_id()
的示例:
session_start();
if( empty(session_id()) ) {
session_id();
}
始終從文檔中獲取:
session_id()用於獲取或設置當前會話的會話ID。
如php手冊所述, session_create
函數將創建一個新會話,或者如果您已經創建了一個會話,則返回當前會話 。 因此,無需檢查是否存在會話。 如果仍然要檢查,我建議使用Flux Coders方法。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.