Установить идентификатор сессии на всех моих доменах после входа на один из моих сайтов на одном сервере - PullRequest
0 голосов
/ 05 июля 2019

Я использую PHP session_set_save_handler для хранения данных сеанса в моей базе данных MySQL с domain1.com.

Я хочу автоматически записать идентификатор сеанса в domain2.com, чтобы пользовательне нужно снова входить в систему с теми же учетными данными на domain2.com

Поэтому я попытался сделать это, но это не сработало.
setcookie("sessid", $id, time() + (86400 * 30), "/", "domain2.com");
Есть ли способ автоматической настройкиидентификаторы той же сессии для других моих доменов, представляющих собой сеть сайтов, совместно использующих одну базу данных и папку www?(Все домены на моих виртуальных хостах указывают на один и тот же каталог)

Примером может служить stakoverflow.com - после входа в систему, если я перехожу на askubuntu.com, заголовок автоматически заполняется моими данными.

1 Ответ

0 голосов
/ 05 июля 2019

Это работает для меня.

setcookie($key, $value, time() + $time, '/', 'carbonphp.com', true, true);

где carbonphp.com #shamelessPlug - это ваш домен или, возможно, localhost.

функция setcookie

/** Cookies are a pain to set up as they also rely on headers not being sent.
 *  This method makes setting cookies easy with three params.
 * @param string $key the name of the cookie
 * @param mixed $value
 * @param int $time the expiration time of our cookie
 */
public static function setCookie(string $key, $value = null, int $time = 604800): void // Week?
{
    if (headers_sent()) {
        $_SESSION['Cookies'][] = [$key => [$value, $time]];
    } else {
        setcookie($key, $value, time() + $time, '/', SITE, HTTPS, true);
    }
}

Предоставленные SITE и HTTPS являются глобальными константами

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...