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代码无效吗?
答案 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填写的会话变量)...