我正在努力强化我的会话并找到下面的代码。我的问题是这一行isset($_SESSION['last_ip']) !== $_SERVER['REMOTE_ADDR']
。
当我回应比较时,IP号码是相同的,但是该行代码将两者比较为不同。如果我将其作为!=
进行比较,则比较有效。这是为什么?这两个值不应该完全相同吗?有任何建议我如何解决它们===
?
ini_set('session.cookie_httponly', true);
session_start();
if ( isset($_SESSION['last_ip']) === false ) {
$_SESSION['last_ip'] = $_SERVER['REMOTE_ADDR'];
}
if ( isset($_SESSION['last_ip']) !== $_SERVER['REMOTE_ADDR'] ) {
echo $_SESSION['last_ip'] . ' / ' . $_SERVER['REMOTE_ADDR']; // the output is identical
}
答案 0 :(得分:11)
if ( isset($_SESSION['last_ip']) !== $_SERVER['REMOTE_ADDR'] ) {
您正在检查是否设置了一个而另一个匹配该布尔值。删除isset
。
答案 1 :(得分:2)
就个人而言,我将在IF序列中使用AND运算符解决此问题,例如:
if ( isset($_SESSION['last_ip']) && $_SESSIOn['last_ip'] != $_SERVER['REMOTE_ADDR'] ) {
这有帮助吗?