我正在使用专有DBMS“4th Dimension”制作的网站。我真的很挣扎,因为我还是初学者,而且我在客户端 - 服务器应用程序上只有PHP经验。 4D提供了一个Web服务器,它可以处理GET和POST请求,并向客户端发送基本响应。
我的问题是:
似乎没有相应的PHP $_SESSION
来存储持久变量,但我必须在访问者会话期间保留浏览历史记录,实现该目标的好方法是什么?
我甚至不知道如何在访问期间识别单个访客。 我真的很感激一些帮助。 问候, 咖啡因
TL; DR 用任何语言模仿PHP会话的最佳方式是什么?
答案 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