我正在學習 php。我有一個類和一個函數來啟動自定義會話,如下所示,現在如何在每個 php 頁面中使用所述自定義 session_start?請幫忙。我的代碼就像<?php// myclass.phpclass abcd{ function sec_session_start() { $session_name = 'sec_session_id'; // I have Set a custom session name $secure = false; $httponly = true; if (ini_set('session.use_only_cookies', 1) === FALSE) { $err='Could not initiate a safe session (ini_set)'; $err = Encryption::encode($err); header("Location: ../login.php?error_msg=".$err); exit(); } // Gets current cookies params. $cookieParams = session_get_cookie_params(); session_set_cookie_params($cookieParams["lifetime"], //session_set_cookie_params(time()+3600, $cookieParams["path"], $cookieParams["domain"], $secure, $httponly); // Sets the session name to the one set above. session_name($session_name); session_start(); session_regenerate_id(true); }}?>在這種情況下,顯示以下錯誤: 注意:會話已經啟動 - 忽略 session_start()myphp 頁面如下 -<?php// mypage.phpinclude_once "myclass.php";$mevalue = new abcd;$mevalue->sec_session_start();code code code?>請幫我解決這個問題。
1 回答

jeck貓
TA貢獻1909條經驗 獲得超7個贊
會話應該持續整個頁面訪問,而不是在每個頁面上更新,例如,用戶登錄一次并將其存儲到會話中,因此用戶不需要為每個新頁面或點擊再次登錄。
大多數情況下,如果有人訪問您的頁面,會話就會開始,并一直持續到用戶離開頁面 -> 關閉會話。
最好的方法是檢查是否為該用戶打開了一個會話,只有在用戶沒有會話時才啟動一個會話。
要關閉會話,可以使用
session_write_close ( void ) : bool
有了這個,您可以更新代碼以具有get_session功能。在此功能中,您可以檢查會話是否存在并使用該會話,如果不存在則啟動一個新會話
class abcd{
function init_session()
{
if (!isset($_SESSION)) {
$this->sec_session_start();
}
}
function sec_session_start() {....
在你的頁面中
$mevalue->init_session();
- 1 回答
- 0 關注
- 153 瀏覽
添加回答
舉報
0/150
提交
取消