2

我正在开发一个使用专有 DBMS“ 4th Dimension ”制作的网站。我真的在为此苦苦挣扎,因为我还是个初学者,而且我只有在客户端-服务器应用程序上使用 PHP 的经验。4D 提供了一个 Web 服务器,可以处理 GET 和 POST 请求,并向客户端发送基本响应。

我的问题是: 似乎没有等效的 PHP$_SESSION来存储持久变量,但我必须在访问者会话期间保留浏览历史记录,实现这一目标的好方法是什么?

我什至不知道如何在访问期间识别单个访客。我真的很感激一些帮助。问候,咖啡因

TL;DR用任何语言模拟 PHP 会话的最佳方式是什么?

4

2 回答 2

2

Check out this Summit session from the 4D knowledge base: Web Session Management: Tracking Your Web Users. It is complete with notes and a sample .4DB.

I'd also recommend a more thorough search on the KB and the iNUG mailing list (you have to be manually approved before you can post, but you can browse archives).

As much as I like SO the iNUG really is the best place to get in touch with 4D devs.

于 2011-07-13T15:26:46.820 回答
0

4d v14 具有本地会话管理;要激活它,只需在数据库设置(cfr 4d Web 会话管理)中设置“自动会话管理”选项或使用命令 WEB SET OPTION(Web Keep session; true)。

会话从 4d 开始使用 cookie 进行维护;维护每个过程变量和记录选择。

在“On Web Connection”数据库方法的代码中,您可以编写:

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
于 2014-03-04T21:30:24.723 回答