涉及$_GET、$_POST和重定向(header())的任务


task involving $_GET, $_POST, and redirects (header())

这就是我所处的情况:

我目前有3页:

  • people.php,这是一个页面,用户可以在其中选择他们想要关注的用户,当他们点击用户时,他们会关注他们。每个人都链接到follow.php,但变量username会在链接中发布到不同的值,具体取决于按下的值。即如果选择了anderson-cooper,则触发的链接为follow.php?username=andersonoper;

  • follow.php,这是一个当用户选择他们想要关注的人时触发的页面,该页面遍历并跟随该人。此页面仅在用户登录时工作。该页面获取变量用户名($username = $_GET['username']),值取决于所选链接。接下来,这个username变量被放入用户后面的函数中。

  • Login.php,这是一个允许用户登录twitter并授权应用程序的页面。我把代码放在follow.php的顶部,上面写着如果用户没有登录,就把它们发送到这里。当login.php和用户完成后,它们会被发送回follow.php。唯一的问题是不再定义变量username。如果用户没有登录,我尝试在重定向到登录页面之前设置变量($username = $_GET['username']),但这不起作用。对于重定向,我使用这个:

if(empty($_SESSION['oauth_token'])){
    //not signed in
    die(header( 'Location: twitter_login.php' )) ;
}

我试着在没有骰子的情况下使用这个脚本,但它仍然不起作用。follow.php代码的其余部分遵循此检查。我希望我能很好地解释我的问题。如果用户已经登录,因为login.php永远不会被调用,你也永远不会离开follow.php,所以脚本运行得很好。但当你离开页面时,你无法获取['username']。有人知道解决这个问题的办法吗?非常感谢。

您需要将查询字符串附加到您的位置标头,例如

die(header("Location: mypage.php?username=".$_GET['username']));

将用户名存储在_SESSION中并以这种方式引用它。