php - 在我的实时应用程序上获取看起来很像 session 冲突的行为。不知道为什么

标签 php mysql session primary-key lamp

基本上,用户间歇性地查看和覆盖彼此的数据(显然,这真的很糟糕)。我试图在我的测试站点上重新创建该行为,但无济于事。在测试站点上,帐户顽固地只显示自己的数据。

这是一个低流量应用程序。它目前拥有不到 200 个用户帐户。

我很高兴发布我的代码,但我什至不确定要发布哪个代码。

我想到的可能导致此行为的事情:

多个用户不小心被分配了数据库中的冗余 uid。

没有。数据库键约束禁止这样做,但它们应该这样做。

session ID 冲突。

我怀疑。 session ID 由 PHP 设置,我没有搞砸,所以它们是很长的 MD5 散列,就像它们应该的那样。

数据库中的 session 冲突。

我们数据库中的Sessions表有五列:sessionkey、uid、serieskey、expiration和ipaddress。正在创建和销毁 session ,因为它们应该在用户登录和注销时进行。我一直在实时观看,效果很好。

然而,在我们的测试站点上,我无法重现该行为。即使有多个帐户从不同的 IP 地址同时登录。但是用户肯定在实时站点上报告了它,我可以看到用户在我的数据库中覆盖彼此数据的结果。我不知道为什么会这样。知道您看不到我整个庞大的代码库(我和其他两个人花了一年时间才写完)接下来您会从哪里开始看?

最佳答案

问题出在我们生成 cookie 的方式上。这是我从未处理过的代码的一部分。当我设法把写那部分的人逼到墙角时,他确切地知道为什么会这样,并在不到一分钟的时间内修复了它。

关于php - 在我的实时应用程序上获取看起来很像 session 冲突的行为。不知道为什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28178641/

相关文章:

MySQL 连接 n 到 n 个关系表,保留 NULL 值

asp.net - 存储应用程序变量

php - 多级登录页面根据用户角色php将用户重定向到不同的页面

java - 连接到网站并保持 session ?

php - github php项目部署

PHP 使用 HTTP 身份验证从远程 URL 获取 XML

php - 如何在 Medoo SQL 语句的 WHERE 子句中写入 "AND"和 "OR"

php - 在 foreach 中转换为数组是否被认为是一种不好的做法?

php - MySQL 查询末尾的 "ORDER BY order"导致问题

php - SQLSTATE[HY000] [1045] 访问被拒绝 'user' @'localhost'(使用密码 : YES)