我想爲使用類的用戶建立一個持久會話,但似乎我無法使其工作。目前,我有這樣的:持續PHP會話
<?php
class Session {
private $sessionId = NULL;
public function __construct() {
session_start();
if($this->sessionId === NULL)
$this->sessionId = session_id();
return $this->sessionId;
}
public function getSessionValue($field) {
return $_SESSION[$field];
}
public function setSessionValue($field, $data) {
$_SESSION[$field] = $data;
}
public function removeSessionValue($field) {
unset($_SESSION[$field]);
}
public function destroySession() {
$this->sessionId = NULL;
session_destroy();
}
public function __toString() {
return $this->sessionId;
}
}
?>
但它發生時,我將用戶重定向到另一個domanin這樣他就可以付款,他就失去了它的會話,當他回到自己的網站。目前,我與setSessionValue('paymentid', 1)
方法從這個類保存了一些數據,使用JavaScript重定向,並且當它回來的時候,我有這樣的代碼來檢查,如果他有一個會話值:
$session = new Session();
if($session->getSessionValue('paymentid') !== null) {
// Do something here
}
它返回我一個空paymentid。奇怪的是,它有時是有效的,但並不總是這樣,所以......這可能是什麼錯誤?
如果「其他域」只是一個子域,那麼您需要確保cookie已經存儲在正確的域屬性中,然後使用sessid =>向您發送一個cookie。請注意,domain = siteA.com的cookie不可用於siteB.com – Federkun
https://stackoverflow.com/questions/17242346/php-session-lost-after-redirect?rq=1 –