У меня есть система входа / выхода, и мне нужны файлы cookie для работы через www.mydomain.com, а также mydomain.com.У меня проблема с удалением файлов cookie.При входе в систему я устанавливаю файлы cookie следующим образом:
session_start();
//set session vars
setcookie('user_id', $row['user_id'], time() + (60 * 60 * 24 * 30), '/', 'domain.com');
setcookie('full_name', $row['first_name']." ".$row['last_name'], time() + (60 * 60 * 24 * 30), '/', 'domain.com');
, который работает, и куки сохраняются и работают с или без www.Это позволяет просматривать страницу профиля, которая имеет следующий код:
session_start();
if(!isset($_SESSION['user_id'])) {
if(isset($_COOKIE['user_id']) && isset($_COOKIE['full_name'])) {
$_SESSION['user_id'] = $_COOKIE['user_id'];
$_SESSION['full_name'] = $_COOKIE['full_name'];
}
}
if(!isset($_SESSION['user_id'])) {
echo '<p class="login">Please <a href="login.php">log in</a> to access this page.</p>';
exit();
}
Проблема при выходе из системы:
session_start();
if(isset($_SESSION['user_id'])) {
$_SESSION = array();
if (isset($_COOKIE[session_name()])) {
setcookie(session_name(), '', time() - 3600, '/', 'domain.com');
}
session_destroy();
}
setcookie('user_id', '', time() - 3600, '/', 'domain.com');
setcookie('full_name', '', time() - 3600, '/', 'domain.com');
Файлы cookie удаляются, но только для текущего домена.Поэтому, если я войду с domain.com/login.php и выйду с domain.com/logout.php, domain.com/profile.php не будет работать (хорошо), но я все равно смогу просмотреть www.domain.com/profile.php, если я посетил www.версия до выхода.И наоборот, я могу выйти из www.domain.com/logout.php и по-прежнему иметь возможность просматривать domain.com/profile.php.Есть ли способ удалить все куки в поддоменах?