4D Web服务器和会话变量

时间:2011-07-13 07:24:28

标签: http cookies session-variables 4d-database

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

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

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

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

2 个答案:

答案 0 :(得分:2)

从4D知识库中查看此峰会:Web Session Management: Tracking Your Web Users。它包含注释和示例.4DB。

我还建议在KB and the iNUG邮件列表上进行更彻底的搜索(您必须先manually approved才能发帖,但您可以浏览档案)。

尽管我喜欢,但iNUG确实是与4D开发者联系的最佳场所。

答案 1 :(得分:0)

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

使用Cookie从4d维护会话;保持每个过程变量和记录选择。

在“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