if (isset($_SESSION['last_ip']) === false) {
$_SESSION['last_ip'] = $_SERVER['REMOTE_ADDR'];
}
上面的代码意味着如果会话“last_ip”尚未创建,它将被创建并存储用户当前 ip 的值。
if ($_SESSION['last_ip'] != $_SERVER['REMOTE_ADDR']){
session_unset();
session_destroy();
}
上面的代码表示如果“last_ip”的会话值不等于您当前的ip,它将释放所有会话变量(session_unset)并销毁所有注册到会话(session_destroy)的数据。
让我们描述一下真实的场景。
例如,我访问您的网站,因此第一个代码块存储了我当前的 ip。现在我的互联网断开了,我重新连接到我的 isp,它启用了 dhcp 并为我提供了新的 ip。因此,如果再次访问您的网站,第二个代码块会检查我是否拥有不同的 IP,以便将我注销。
还要编辑你的第二个代码块,这样如果会话“last_ip”还没有创建,它就不会抛出 php 通知。
if (isset($_SESSION['last_ip']) && $_SESSION['last_ip'] != $_SERVER['REMOTE_ADDR']){
session_unset();
session_destroy();
}