我对网上商店进行了以下设置: 当用户登录时,将通过AJAX调用脚本,该脚本根据SOAP-Webservice验证用户数据 并返回用户数据。用户登录时,用户数据将保存在PHP会话中。用户数据 仅由SOAP检索,而不是由商店存储。我使用默认的PHP Session处理程序。 当用户下订单时,会向用户的地址发送确认电子邮件。 网站上的流量是适中的,每天约100个订单。
我有以下错误: 大约三个月一次,电子邮件被发送到错误的地址。来自会议的其他数据 电子邮件正文(ex.customerNo)是正确的,但显然电子邮件地址的价值是错误的。
这是我到目前为止所发现的: 每次发生这种情况时,地址混淆的用户都在同一时间(+ - 2秒)登录。 我没有成功尝试通过同时登录两个不同的用户来重现这一点 比较会话数据。
假设从SOAP-Webservice返回的数据是正确的,可能导致此问题的原因是什么?
编辑:以下是用于编写和阅读会话的代码片段,在电子邮件中,代码脱离了上下文,我在中间省略了一点:
EDIT2:删除了代码段,因为问题原因是SOAP-Service实现中的缓存错误被调用以检索电子邮件数据。
答案 0 :(得分:1)
每次发生这种情况时,地址混淆的用户都会在同一时间(+ - 2秒)登录。我没有成功尝试通过同时登录两个不同的用户并比较会话数据来重现这一点。
您描述的问题最有可能是因为过度热化的缓存和/或一端或另一端的数据泄漏问题。
我认为会话在PHP端变得混乱的可能性很小 - 但是代码中的会话别名可能存在问题。了解您的PHP实例是否作为分叉进程或线程运行会很有帮助。
测试问题是否在远程服务器上的正确方法(远程服务器使用线程的可能性更大)是脚本操作 - 不使用浏览器 - 并使用不同的对运行测试数百次凭证 - 不只是一次。