2012-02-10 107 views
1

我有一个登录函数,通过xml webservice对远程数据库进行授权。成功登录后,我为登录用户设置了一大堆会话变量,这些登录用户在站点后面跟随它们(仅限会员内容等)。这一切工作正常。从一个application.cfm访问Coldfusion会话变量到另一个

我们正在建立一个商店,希望能够访问会话变量,成员定价,预填表单等等。现在,链接到店后,才在会员登录可我包括在链接的URL标记,像这样:

https://mysite.com/store/index.cfm?<cfoutput>#session.urltoken#</cfoutput> 

商店页面上CFdumping会议显示了相同的CFID,CFTOKEN和jsessionid作为登录页面,所以我认为会话被正确维护 - 但是我的会话变量没有出现在转储中,并且如果我尝试引用它们,则会看到“会话中未定义”错误。

无论我通过http> http,https> https或其他组合从登录到商店,都会发生这种情况。它都在同一台服务器上。我很感谢任何帮助解决这个问题,或者如果有人有更好的建议如何实现我们的目标,我也会很感激!再一次,我想要做的就是让商店在首次到达商店主页时识别登录成员。非常感谢!

+0

您是否确认完整的网址是相同的(即双方mysite.com或www.mysite.com)?否则,你的代码应该工作。 – 2012-02-10 09:00:10

+0

你住在同一个应用程序中吗?换句话说,在这两种情况下'application.applicationname'是相同的吗? – ale 2012-02-10 13:27:15

+0

嗨比利谢谢,URL是相同的 - 他们都是同一网站的一部分,即通过https://mysite.com/login.cfm将设置会话变量并提供一个链接到https:// mysite .COM /存储/ index.cfm。 Al,我正在检查应用程序设置...谢谢! – daltec 2012-02-10 14:30:31

回答

0

两个应用程序都需要具有相同的名称

如果他们有不同的名称,那么所有应用程序会话变量是特定于该应用程序。

so in application.cfm确保名称设置为 如果您有任何application.cfc可能在构造函数中使用this.name设置。

+1

重读这个问题后,看起来我们都不明白发生了什么。没有迹象表明它们是独立的应用程序:它听起来像他所引用的两个页面都在同一个应用程序中,因此可能不存在“两个应用程序”这样的事情,而是会话在上下文切换中丢失往返于SSL。 – 2012-02-10 08:46:20

+0

其可能的命名方式不同或者没有启用会话变量。 – 2012-02-10 09:01:28

+0

我正在阅读作为一个文件夹,一个应用程序,一个application.cfm,在Web服务器中的2个不同的网站 - 但阅读标题,也许不是这种情况 – 2012-02-10 10:16:34

-1

您可以使用服务器范围。

<cfset server.sharedSession[session.urlToken]=session> 

要复制到服务器会话:

<cfloop collection='#server.sharedSession['#url.urlToken#']#" index="i"> 
    <cfset session[i]=servers.sharedSession['#url.urlToken#'][i]> 
</cfloop> 

你可以只复制整个会话,但循环可以让你保持不在源会话值。

+0

我认为这是一个非常糟糕的想法,您试图通过向服务器变量范围中添加一个令牌来重复会话变量。什么会清理它们,计时等。我会坚持使用会话变量。 – 2012-02-10 08:23:22

+0

我同意:如果你想在两个不同的应用程序上同步会话,你可能会想通过HTTP使用一个简单的服务调用 - 这将避免服务器范围的问题。但是,我不认为这是发生在这里的事情;我认为这是同一个应用程序(请参阅我的答案) – 2012-02-10 08:47:47

+0

感谢比利和戴尔的帮助!对此,我真的非常感激!经过仔细检查,以下是我的:1)mysite.com的一个根文件夹;内的各种文件夹(即移动,商店,图像等)。 2)部分网站使用Farcry CMS。在根文件夹中的确有application.cfc,farcryConstructor.cfm和proxyApplication.cfc。在商店文件夹中是application.cfm。构造函数确实使用cfset与application.cfm中的名称不同的名称。等我做一些快速编辑时再继续......再次感谢! – daltec 2012-02-10 14:39:42