2011-04-29 29 views
1

我有一些信息存储在$ _SESSION中,会话通过自定义会话处理程序存储在数据库中。是否可以清除不同会话的变量?

有没有一种标准的方法来模拟具有会话ID的会话或从另一个会话中清除特定的变量。

我在问这个问题,因为我有我的web应用程序,其会话变量本身可以工作,这是一个实际的购物车,其中包含使用paypal的订单信息。 Paypal通过IPN(通知)返回支付响应,这是从他们的服务器向我的网站发出的请求。这些请求当然会开始他们自己的会议。

我想找到的方法是清除原来的会话变量从看到不同会话的PayPal通知请求。有没有办法做到这一点?

一个想法可能是手动编辑存储会话数据的数据库,但我想寻找标准的东西,而不管会话处理程序如何。

+0

“模仿”会话的标准方式称为“会话劫持”;并且通常由您通常希望保护您的网站的人员使用。对于使用贝宝技术,我一定会感到不舒服。 – 2011-04-29 20:10:35

回答

0

会话因浏览器cookie而工作。如果您删除了该cookie,它将创建一个新的会话。如果您将Cookie更改为另一个会话的cookie,则您现在正在模拟该会话。

您可以使用Chrome的开发人员工具或Web Developer Firefox插件轻松访问您的浏览器Cookie。

+0

它默认使用cookie,我使用我自己的会话处理程序在数据库上存储数据。我不想更改/更改Cookie或数据库,我正在寻找一种常规方法 – Mescalito 2011-04-29 20:32:45

+0

所有会话都使用cookie,无论您将它们存储在服务器上的哪个位置。这是从请求中识别特定用户的唯一(实用)方法。我可能不会理解你的问题。 – 2011-04-29 20:36:53

0

您是否尝试创建会话数组并给它一个id。

这样

$_SESSION['ipn'] =""; 
$_SESSION['ipn']= "Mescalito"; 
+0

不知道我在这里跟着你,只是将数据添加到$ _SESSION,这不是我真正想要的。 – Mescalito 2011-04-29 20:34:15

1

我问到这个问题,因为我有我的web应用程序,对自己的工作的会话变量,这是实际购物车中有使用贝宝订单信息。 Paypal通过IPN(通知)返回支付响应,这是从他们的服务器向我的网站发出的请求。这些请求当然会开始他们自己的会议。

我想找到的方法是清除原来的会话变量从看到不同会话的PayPal通知请求。有没有办法做到这一点?

如果您发现自己需要在其他人的会话中编辑数据,则不应将该数据存储在会话中以开始。

如果您需要阅读或以其他方式使用IPN,可能应将其存储在数据库中的实际表格中。您可以将该行与用户的会话ID相关联,或者最好使用其登录名或电子邮件地址。

0

这应该不是必需的。

我很肯定你可以在IPN中指定一个唯一的工作ID。使用该唯一ID找出通知所属的用户,并编辑其数据。不要为此讨论会议,这是糟糕的设计。

相关问题