当我通过具有两个 IP 地址的平衡网关将我的客户端连接到我的托管服务器时,我在 PHP 中的会话行为很奇怪。
我用 cookie 正确初始化了会话,设置了会话布尔变量,为了调试,我打印了以下信息:
echo var_dump($_SESSION["islogged"]);
echo var_dump(session_id());
echo var_dump($_SERVER["REMOTE_ADDR"]);
比我刷新页面多次,我得到两个结果:
bool(false) string(26) "ism1vg1de6v0b1r8b2ng337uh3" string(13) "48.129.84.146"
bool(true) string(26) "ism1vg1de6v0b1r8b2ng337uh3" string(13) "96.19.184.38"
bool(true) string(26) "ism1vg1de6v0b1r8b2ng337uh3" string(13) "96.19.184.38"
bool(false) string(26) "ism1vg1de6v0b1r8b2ng337uh3" string(13) "48.129.84.146"
bool(false) string(26) "ism1vg1de6v0b1r8b2ng337uh3" string(13) "48.129.84.146"
bool(true) string(26) "ism1vg1de6v0b1r8b2ng337uh3" string(13) "96.19.184.38"
...
您可以看到会话是相同的,但是会话栏会发生变化。你知道如何解决这个问题吗?
这是登录检查:
$ISLOGGED=!empty($_SESSION["islogged"])
这是登录代码:
$ISLOGGED=$_SESSION["islogged"]=$_POST["password"]==$password;