Drupal6中的会话和自定义ajax

Drupal6中的会话和自定义ajax,ajax,drupal,session,drupal-6,Ajax,Drupal,Session,Drupal 6,我正在为Drupal6开发一个定制模块。我对会话变量和ajax功能的自定义代码有问题 如何从由ajax请求触发的后端php脚本访问Drupal创建的会话 e、 g.在模块的.module文件中,我向$\u会话变量添加了一个自定义php对象。我可以在.module文件中访问它,即使它不是同一页。当我执行jQuery ajax请求并尝试访问对象时,$\u会话中没有该对象。整个会话似乎已消失,$\u session变量不存在。调用session_start()将创建新会话和空$会话数组 这个问题我已经

我正在为Drupal6开发一个定制模块。我对会话变量和ajax功能的自定义代码有问题

如何从由ajax请求触发的后端php脚本访问Drupal创建的会话

e、 g.在模块的.module文件中,我向$\u会话变量添加了一个自定义php对象。我可以在.module文件中访问它,即使它不是同一页。当我执行jQuery ajax请求并尝试访问对象时,$\u会话中没有该对象。整个会话似乎已消失,$\u session变量不存在。调用session_start()将创建新会话和空$会话数组

这个问题我已经纠缠了两天了。我只想从ajax请求的后端脚本访问原始会话。此外,我无法访问全局变量,例如$base_url或$user


提前谢谢。

这里只是总结一下评论

Drupal有一个很棒的ajax框架。一旦你们开始工作,它会为你们处理很多困难的事情

如果您选择Drupal,那么所有会话处理都将为您完成


如果你问另一个关于如何让它工作的问题,我相信我们会帮助你。

谢谢你的评论和帮助。在尝试了几条说明、教程和博客文章之后,我成功地使Drupal的内置ajax框架运行起来,所有这些,包括会话,都能很好地处理请求。我了解到,使用Drupal时,需要使用Drupal来完成事情,而不是将“外部”解决方案作为加载项来完成

来自Joomla和Microsoft development Drupal的逻辑主要是*:D中的痛苦


在D7中,我必须在设置
$\u session
变量之前直接调用
drupal\u session\u start()

drupal_session_start();
$_SESSION['type'] = "cat1";

您的Ajax调用是否通过Drupal系统进行?听起来你可能在为他们绕过Drupal,这是自找麻烦。不,他们没有通过Drupal的ajax系统处理,因为我无法让它工作。所有其他ajax请求都像往常一样工作,但会话失败。是否无法从自定义ajax及其后端脚本访问会话?我确实在请求中获得了正确的会话名称和id,但在会话开始之前使用该名称命名会话只会创建一个具有相同名称和id的重复会话。尽管它们有不同的域(drupal有.domain.com,新的只有domain.com)。另外,drupal会话的过期时间是一个日期时间,新的只是“会话”。好吧,你问错了问题——你应该问为什么你的ajax调用在drupal中不起作用。而不是让ajax调用路由到Drupal之外,询问如何集成这两个会话。好的,谢谢你的建议。我将再次尝试,并尝试让Drupal自己的ajax框架正常工作。一开始我很沮丧,我想尝试一条捷径。我发现了一些很有前途的教程。如果遇到一些我无法克服的问题,我会再发一个(愚蠢的)问题。不要自责,一开始很难,而且文档也不太好。D7的ajax框架更好,但在fapi之外更难使用。
drupal_session_start();
$_SESSION['type'] = "cat1";