Веб-сервер 4D и переменные сеанса - PullRequest
2 голосов
/ 13 июля 2011

Я работаю над сайтом, созданным с использованием собственной СУБД " 4-е измерение ".Я действительно борюсь с этим , так как я все еще новичок, и у меня есть опыт работы только с PHP на клиент-серверных приложениях.4D предоставляет веб-сервер, который может обрабатывать запросы GET и POST и отправлять базовые ответы клиенту.

У меня такой вопрос: Похоже, что для хранения в PHP $_SESSION нет эквивалентапостоянные переменные, но я должен вести историю посещений во время сеанса посетителя, какой хороший способ добиться этого?

Я даже понятия не имею, как можно идентифицировать одного посетителя во время его посещения.Я был бы очень признателен за помощь.С уважением, кофеин

TL; DR Какой лучший способ имитировать сессию PHP на любом языке?

Ответы [ 2 ]

2 голосов
/ 13 июля 2011

Посетите этот сеанс саммита из базы знаний 4D: Управление веб-сеансами: отслеживание пользователей сети . В комплекте с примечаниями и образцом .4DB.

Я бы также рекомендовал более тщательный поиск по КБ и списку рассылки iNUG (вы должны быть одобрены вручную , прежде чем вы сможете публиковать сообщения, но вы можете просматривать архивы) .

Как бы мне ни нравился SO, iNUG - действительно лучшее место для общения с 4D-разработчиками.

0 голосов
/ 05 марта 2014

4d v14 имеет встроенное управление сессиями; чтобы активировать его, достаточно установить параметр «Автоматическое управление сеансом» в настройках базы данных (cfr 4d Web Session Management ) или использовать команду WEB SET OPTION (Web Keep session; true).

Сеанс поддерживается с 4d с использованием куки; поддерживается каждая переменная процесса и выбор записей.

В коде метода базы данных «В сети» вы можете написать:

C_TEXT(www_SessionID)
If(www_SessionID=**WEB Get Current Session ID**)
    // All variables and selection already exist
    ...
Else
    // Compiler_Web has just been executed.
    // This is a new session, no variable or selection exists
    // Keep track of the session that 4D just created
    www_SessionID:=**WEB Get Current Session ID**

    // Initialization of session
    // Set up selections
    // find connected user
    QUERY([User];[User]Login=www_Login)
    QUERY([prefs];[prefs]Login=www_Login)

    // Setup variables
    // Get prefs for this user
    www_UserName:=[User]Name
    www_UserMail:=[User]mail
End if
...