我已經在Opencart論壇上發佈了這個,但是沒有人能夠找出問題所在。Opencart和PHP非常奇怪的會話問題
運行Opencart 1.5.6.4。 PHP-5.4.42
如果用戶X在網站上登錄,如果有其他用戶訪問該網站,他也會自動從X的賬戶登錄。我親眼目睹了這一點,當我瀏覽時,它顯示我以500英里外的客戶身份登錄!如果用戶X在他的購物車中添加了一些東西,它也會顯示出來。
因此,由於我通過該帳戶登錄,所以我可以從該帳戶中進行任何操作,下訂單,修改詳細信息等。可怕!隨着網站流量的增加,整個問題變得更加嚴重。
我試着將save.session_path完全移到不同的文件夾/ tmp,但它沒有幫助。
我不是一個全職開發人員,所以有點麻煩搞清楚問題是什麼。如果有人能幫忙,會很棒。
php.ini中有如下會話相關的條目
session.save_path = /webroot/sitename/tmp/
session.use_only_cookies = 1;
session.use_trans_sid = Off;
session.cookie_httponly = 1;
session.gc_maxlifetime = 3600;
session.php文件
class Session {
public $data = array();
public function __construct() {
if (!session_id()) {
ini_set('session.use_only_cookies', 'On');
ini_set('session.use_trans_sid', 'Off');
ini_set('session.cookie_httponly', 'On');
session_set_cookie_params(0, '/');
session_start();
}
$this->data =& $_SESSION;
}
function getId() {
return session_id();
}
}
我們需要查看所有設置,例如save.session_path以及處理您的登錄和Cookie的代碼。 – Barett
你有沒有啓用任何頁面緩存? –
@ Barett-已添加相關代碼。不確定哪些文件處理cookie和登錄。讓我知道,所以我可以發佈相關的代碼。 – ASG