0

登录后如何将用户重定向到他们特定于 ID 的网址/登录页面?重定向 url 的查询字符串应显示与其存储在 Mysql 数据库中的 id(主键)相关的值。

例如,

第一个、第二个、第三个和第四个用户的“id”对应的值是1、2、3和4

用户登录成功后,登录页面/登陆页面应分别如下所示。

www.anysite.com/anydirectory/user.php?id=1

www.anysite.com/anydirectory/user.php?id=2

www.anysite.com/anydirectory/user.php?id=3

www.anysite.com/anydirectory/user.php?id=4

*登录脚本的登录会话如下:*

// 这会设置会话并登录用户**

session_start();

//防止会话固定攻击。

   session_regenerate_id (true); 

// 这会在会话中设置变量

$_SESSION['user_id']= $id;  
    $_SESSION['user_name'] = $full_name;
    $_SESSION['user_level'] = $user_level;
    $_SESSION['HTTP_USER_AGENT'] = md5($_SERVER['HTTP_USER_AGENT']);

    **//update the timestamp and key for cookie**
    $stamp = time();
    $ckey = GenKey();
    mysql_query("update users set `ctime`='$stamp', `ckey` = '$ckey' where id='$id'") or die(mysql_error());

//设置一个cookie

  if(isset($_POST['remember'])){
              setcookie("user_id", $_SESSION['user_id'], time()+60*60*24*COOKIE_TIME_OUT, "/");
              setcookie("user_key", sha1($ckey), time()+60*60*24*COOKIE_TIME_OUT, "/");
              setcookie("user_name",$_SESSION['user_name'], time()+60*60*24*COOKIE_TIME_OUT, "/");
               }
               header('Location: user.php');
     }
    }
    else
    {
    //$msg = urlencode("Invalid Login. Please try again with correct user email and password. ");
    $err[] = "Invalid Username Or Password.";

我应该使用什么标头来以这种方式重定向用户?此外,如何为相同目的创建登录页面。

任何帮助将不胜感激。

4

3 回答 3

1

只需将您的用户 ID 附加$_SESSION到您要重定向到的 URL。

header('Location: user.php?id=' . $_SESSION['user_id']);
于 2011-12-14T12:38:33.970 回答
0

当您检查是否成功登录时,请在查询中返回用户 ID。这是一些快速的伪代码:

  • 在查询中:选择 user_id where user_name = ? 和密码=?
  • 如果 results.count = 1 则将 user_id 存储为 $user_id
  • 重定向到“www.anysite.com/anydirectory/user.php?id=”。$User_Id
于 2011-12-14T12:38:19.150 回答
0

你想像这样重定向吗:-

www.anysite.com/anydirectory/user.php?id=1

然后只做

header("Location: user.php?id=".$userId);
于 2011-12-14T12:44:17.263 回答