我使用wamp在Windows 7机器上开发。对于这个应用程序,我有一个管理区域,用$ _SESSION跟踪管理员用户名和加密密码,以及跟踪随机生成的密码加密密钥的cookie。
我将cookie设置为:
setcookie('key', $key, time()+7200, 'admin/');
管理员用户输入用户名和密码详细信息后,在每个管理页面上运行管理员用户验证。
网站和管理员的目录结构是:
localhost/mysite/
locahost/mysite/admin/
会话在admin部分运行,会话也在前端的用户界面中运行,以跟踪所选的搜索条件。
当我在管理区域中运行长数据库查询时,即。多次更新和插入,每次迭代都需要连接到外部API,我无法在同一个浏览器中加载前端用户界面,即。 firefox直到管理操作完成后。如果我使用不同的浏览器即。 chrome,我可以在运行admin mysql函数的同时加载网站的前端而没有任何问题。
我希望在这些操作运行时查看该网站,并使用相同的浏览器。这是一个小问题,但我想知道如何绕过它,因为我想学习。我的意思是我可以告诉自己这没关系,因为当我打开另一个浏览器时该网站工作正常,并且最终用户无论如何都不会在查看网站时运行管理操作,所以从这个角度来看它不会无所谓,但我很好奇。
在管理操作运行期间阻止我查看网站的会话和Cookie是怎么回事?我的问题甚至是一个好问题吗?我的一部分认为这是一个愚蠢的问题,因为最终该网站在单独的浏览器中运行良好。无论如何,谢谢你的期待!
答案 0 :(得分:2)
我认为你的会话被锁定了。在需要很长时间才能运行的页面上,在顶部添加:session_write_close();
应该修复它。