强化php会话 - 比较错误

时间:2012-12-19 01:16:22

标签: php session

我正在努力强化我的会话并找到下面的代码。我的问题是这一行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
}

2 个答案:

答案 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'] ) {

这有帮助吗?