PHP从登录获取ID

时间:2011-09-05 20:09:24

标签: php login

        if($row['usr'])
        {
            // If everything is OK login

            $_SESSION['usr']=$row['usr'];
            $_SESSION['id'] = $row['id'];
            $id = $_GET['id'];
            $_SESSION['rememberMe'] = $_POST['rememberMe'];

            // Store some data in the session

            setcookie('tzRemember',$_POST['rememberMe']);
        }
        else $err[]='Wrong username and/or password!';
    }

    if($err)
    $_SESSION['msg']['login-err'] = implode('<br />',$err);
    // Save the error messages in the session
    $goHere = 'Location: /index2.php?id=' . $id;
    header($goHere);
    exit;
}

这当前在网址中提供了index2.php?id= NOT index2.php?id=105或任何整数的输出。

有人知道为什么这个UPDATED代码无效吗?

4 个答案:

答案 0 :(得分:1)

你确定$ id甚至被设置了吗?请注意,正确的查询字符串格式为 ?key=value其中值为$id

答案 1 :(得分:1)

仅当$id真实时才设置$row['usr']的值。将$id = $_GET['id'];行移出条件。

此外,如果您使用类似的网址来访问此网页(index1.php?123),则$_GET['id']设置。您需要命名参数(index1.php?id=123)。

答案 2 :(得分:0)

检查$ id是否正在设置,只有在当前页面有somepage.php?id = 1时才会设置。您确定不应将其设置为会话ID吗?

我在标题函数中加入字符串时遇到了一些问题,请尝试以下方法:

$go-here = 'Location: /index2.php?id=' . $id;
header($go-here);

答案 3 :(得分:0)

在我看来,你没有正确设置ID(基于我能看到的代码......)。 Wy不做以下事情?

$_SESSION['usr']=$row['usr'];
$_SESSION['id'] = $row['id'];
$id = $row['id'];

如果您根据数据库行中的ID登录用户,则可以将该行分配给$ id以及会话。 (或者更好的是,甚至不使用$ id,你可以只使用你刚用用户ID填写的会话变量)...