Ситуация такая
есть два сайта (domain.com , a.domain.com), с единой БД и тд.
Если авторизоваться и выйти с главного домена, то куки создаются и удаляются для всех доменов.
Если авторизоваться с a.domain.com, то куки создаются для всех доменом, но, при этом не удаляются, если выйти с главного домена, куки на А остаются :( а выйти с основного, остаются на А.
Как это побороть?
При выходе указываю, что нужно уйти со всех субдоменов, ставя точку перед доменом: .domain.com
public static function authorize($user)
{
if (self::isAuthorize()) {
return;
}
$_SESSION[self::KEY_TOKEN] = $user->token;
$_SESSION[self::KEY_ID] = $user->id;
setcookie(self::KEY_TOKEN, $user->token, time() + 3600 * 24 * 365, '/', 'domain.com', self::isHttps(), self::HTTP_ONLY);
setcookie(self::KEY_ID, $user->id, time() + 3600 * 24 * 365, '/', 'domain.com', self::isHttps(), self::HTTP_ONLY);
}
# выходим с авторизации
public static function exit()
{
unset($_SESSION[self::KEY_TOKEN]);
unset($_SESSION[self::KEY_ID]);
setcookie(self::KEY_TOKEN, null, null, '/', '.domain.com', self::isHttps(), self::HTTP_ONLY);
setcookie(self::KEY_ID, null, null, '/', '.domain.com', self::isHttps(), self::HTTP_ONLY);
}
Почему вы куку ставите на domain.com
а снимаете с .domain.com
? PHP отправляет это в заголовок Set-Cookie как есть, а браузеры могут не понять. Второй момент - попробуйте два последних параметра self::isHttps(), self::HTTP_ONLY
убрать: для эксперимента(обычно их всегда по умолчанию оставляют).
Ещё один момент - попробуйте убирать куки, проставляя настоящее время в прошлом вместо null:
setcookie(self::KEY_TOKEN, '', time() - 86400, '/', 'domain.com');//например так
Иначе, говорят, не все браузеры поймут что это сброс - опять-же. А так ошибок нет, кука с поддомена, живущая в пространстве основного домена: это нормально, а наоборот: политика безопасности не пропустит.
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Мне нужно сделать так, чтобы задача в Cron выполнялась каждые n минут, причем n может быть от 1 до бесконечностиЭто число указывается в переменной...
Я создал верстку сайта на обычном HTML\CSS\JS , и я посадил верстку на WP, а теперь вопрос
подскажите пож-та есть такой код php для форма обратной связи, но есть 2 проблемы:
я убил на это месяцы, и искал в интернете, и сам пытался решать, и методом тыка перепробовал, но все никак