Модераторы: Snowy, Poseidon, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Удаление куки 
:(
    Опции темы
aktuba
Дата 15.4.2007, 10:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Смышленный
***


Профиль
Группа: Завсегдатай
Сообщений: 1915
Регистрация: 24.4.2006
Где: Планета Земля

Репутация: 9
Всего: 38



Такая проблема: надо перед запросом на сайт удалить куки, связанные с этим сайтом. Делаю следующее:
Код

function  THTTPThread.GetCookie(AHost: string): string;
var
  lpStr: PChar;
  lpLen: Cardinal;
begin
  lpLen := 0;
  InternetGetCookie(PChar(AHost), nil, nil, lpLen);
  if lpLen > 0 then
    begin
      lpStr := SysGetMem(lpLen);
      try
        InternetGetCookie(PChar(AHost), nil, lpStr, lpLen);
        if lpStr <> '' then
          Result := Copy(lpStr, 1, lpLen);
      finally
        SysFreeMem(lpStr);
      end;
    end;
end;

procedure THTTPThread.DeleteCookie(AHost: string);
var
  lCook: string;
  lpStr: PChar;
begin
  lCook := GetCookie(AHost);
  if lCook <> '' then
    begin
      // <-------------------------------------- Вот тут не знаю что сделать =((((((
    end;
end;


Нашел на винграде такой код на C++:
Код

BOOL MHTTP_KillCookie(const char *url, const char *name)
{
    BOOL ret_code = FALSE;
    char* cook;
    const char sReset[] = " = 0; expires = Sat, 01-Jan-1990 00:00:00 GMT";
    cook = (char*)heap_alloc(lstrlen(name) + sizeof(sReset));
    if(!cook)
        return ret_code;
    lstrcpy(cook, name);
    lstrcat(cook, sReset);
    ret_code = InternetSetCookie(url, NULL, cook);
   
    heap_free(cook);
    return ret_code;
}
// ############################################################################
void MHTTP_KillCookies(const char *url)
{
    char serv[255];     //адрес сервера где убиваем Cookie
    //удаляем все временные файлы интернета
    MHTTP_DelTempFiles();
    // ------------------------------------------------------------------------
    // Взятие с url адреса сервера serv
   // здесь строки вида "http://google.com/path?query" превращаются в 
   // строки вида "http://google.com", тобишь возвращается сервер от полного адреса коль не ясно
    HTTPT_url hurl;
    HTTPT_UrlParse(&hurl, url);
    HTTPT_UrlGetServAddr(hurl, serv);
    // ------------------------------------------------------------------------
    DWORD size;
    InternetGetCookie(serv, NULL, 0, &size);
    if (!size)
        return;
    char*   data = (char*)heap_alloc(size);
    InternetGetCookie(serv, NULL, data, &size);
    // ------------------------------------------------------------------------
    // перебор имён cookie
    char cookieName[255];
    char *ch1, *ch2;
    ch1 = data;
    while (1)
    {
        // --------------------------------------------------------------------
        // имя
        ch2 = StrStr(ch1, "=");
        if (!ch2)
            break;
        lstrcpyn(cookieName, ch1, ch2 - ch1 + 1);
        // --------------------------------------------------------------------
        //сброс
        MHTTP_KillCookie(serv, cookieName);
        // --------------------------------------------------------------------
        // следующий cookie
        ch1 = StrStr(ch1, "; ");
        if (!ch1)
            break;
        ch1 += 2;
    }
    heap_free(data);
}


Самому перенести не удалось сразу. Может кто поможет?


--------------------
user posted image
PM MAIL WWW Skype   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Сети"
Snowy
Poseidon
MetalFan

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делится вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи

Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Snowy, Poseidon, MetalFan.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Сети | Следующая тема »


 




[ Время генерации скрипта: 0.0372 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.