Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
KANSoftWare

Работа с Cookies в TMS Web Core через Delphi

Delphi , Интернет и Сети , CGI и Cookies

В современном веб-разработке работа с cookies является важной частью взаимодействия с пользователем. В JavaScript обращение с cookies осуществляется через свойство document.cookie, что делает этот процесс довольно простым. Однако, как быть, если вы используете Delphi и фреймворк TMS Web Core? В этой статье мы рассмотрим, как работать с cookies в этих условиях.

Проблема

В JavaScript работа с cookies сводится к чтению и записи значения свойства document.cookie. Пример кода на JavaScript для получения и установки cookies выглядит следующим образом:

function getCookie(cookie_name) {
    const name = cookie_name + "=";
    const decodedCookie = decodeURIComponent(document.cookie);
    const ca = decodedCookie.split(';');
    for(let i = 0; i < ca.length; i++) {
        let c = ca[i];
        while (c.charAt(0) == ' ') c = c.substring(1);
        if (c.indexOf(name) == 0) return c.substring(name.length, c.length);
    }
    return "";
}

function setCookie(cookie_name, value, minutes) {
    let expires = "";
    if (minutes) {
        let date = new Date();
        date.setTime(date.getTime()+(minutes*60*1000));
        expires = "; expires="+date.toUTCString();
    }
    document.cookie = cookie_name + "=" + value + expires + ";SameSite=Strict; path=/";
}

Как же получить и установить cookies, используя Delphi в TMS Web Core?

Решение

Для работы с cookies в TMS Web Core можно использовать класс TCookies из модуля WEBLib.Cookies. Вот примеры функций на Object Pascal для получения и установки cookies:

uses WEBLib.Cookies, System.DateUtils;

procedure SetCookie(cookie_name, value: String; minutes: UInt64);
var
  Cookies: TCookies;
begin
  Cookies := TCookies.Create;
  try
    Cookies.Add(cookie_name, value, IncMinute(Now, minutes));
    Cookies.SetCookies;
  finally
    Cookies.Free;
  end;
end;

function GetCookie(cookie_name: String): String;
var
  Cookies: TCookies;
  Cookie: TCookie;
begin
  Result := '';
  Cookies := TCookies.Create;
  try
    Cookies.GetCookies;
    Cookie := Cookies.Find(cookie_name);
    if Assigned(Cookie) then
      Result := Cookie.Value;
  finally
    Cookies.Free;
  end;
end;

Альтернативное решение

Хотя предпочтительнее использовать стандартные средства TMS Web Core для работы с cookies, существует альтернативный способ, который включает использование смешанного кода на Delphi и JavaScript:

procedure SetCookie(cookie_name, value: String; minutes: UInt64);
begin
  asm
    // JavaScript код для установки cookies
  end;
end;

function GetCookie(cookie_name: String): String;
begin
  Result := '';
  cookie_name := cookie_name + '=';
  asm
    // JavaScript код для получения cookies
  end;
end;

Этот подход не требует использования модуля WEBLib.Cookies и System.DateUtils, но в то же время он менее предпочтителен, так как нарушает принцип разделения кода на платформы и может привести к сложностям в обслуживании и масштабировании проекта.

Заключение

В данной статье мы рассмотрели, как работать с cookies в TMS Web Core, используя Delphi. Приведены примеры функций для установки и получения cookies, которые можно использовать в ваших проектах. Рекомендуется использовать стандартные средства TMS Web Core для обеспечения лучшей совместимости и поддержки.

Создано по материалам из источника по ссылке.

Статья о том, как работать с cookies в веб-разработке с использованием Delphi и фреймворка TMS Web Core.


Комментарии и вопросы

Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.


:: Главная :: CGI и Cookies ::


реклама


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-12-22 20:14:06
2025-03-13 20:52:55/0.0053009986877441/1