Писал как то скрипт с макросом и нужно было чистить куки на одном только сайте, но приходилось пользоваться командой аймакроса CLEAR, которая сносит все куки и после этого приходится заново залогиневаться на других сайтах и вспоминать пароли. Теперь решил воспользоваться средствами ява скрипт. Оказывается, если изменить время жизни куки, например поставить на 1 минуту меньше от текущего времени, то куки автоматически удаляется. То есть если время ее истекло, то она удаляется. Вот на этом и можно сыграть в удаление куки конкретного сайта. Нашел в интернете написанную функцию, которая это проделывает по имени куки.
Установка куки со сроком хранения, доменом
function delete_cookie ( cookie_name )
{
var cookie_date = new Date ( ); // Текущая дата и время
cookie_date.setTime ( cookie_date.getTime() - 1 );
document.cookie = cookie_name += "=; expires=" + cookie_date.toGMTString();
}
Ну и еще функция для установки кук тоже пригодится.
Будет легче устанавливать куки с помощью функции.
function set_cookie ( name, value, exp_y, exp_m, exp_d, path, domain, secure )
{
var cookie_string = name + "=" + escape ( value );
if ( exp_y )
{
var expires = new Date ( exp_y, exp_m, exp_d );
cookie_string += "; expires=" + expires.toGMTString();
}
if ( path )
cookie_string += "; path=" + escape ( path );
if ( domain )
cookie_string += "; domain=" + escape ( domain );
if ( secure )
cookie_string += "; secure";
document.cookie = cookie_string;
}
Например, установка куки без срока хранения:
set_cookie ( "username", "Вася Пупкин" );
Установка куки со сроком хранения, доменом
ruseller.com
, использованием SSL, но без пути:set_cookie ("username", "Вася Пупкин", 2003, 01, 15, "", "ruseller.com", "secure");
Функция получения куки
function get_cookie ( cookie_name )
{
var results = document.cookie.match ( '(^|;) ?' + cookie_name + '=([^;]*)(;|$)' );
if ( results )
return ( unescape ( results[2] ) );
else
return null;
}
Перекодирование значения куки!
Следует перекодировать значение куки для корректного хранения и отображения таких символов как пробел и двоеточие. Такая операция гарантирует, что браузер корректно воспримет значение. Перекодирование лекго выполняется функцией JavaScriptescape()
. Например:
document.cookie = "username=" + escape("Вася Пупкин")
+ "; expires=15/02/2003 00:00:00";
Источник ruseller.com
Комментариев нет:
Отправить комментарий