How to redirect the users to their id specific url

2020-06-06 07:41发布

How to redirect the users to their id specific urls/landing pages after they log in? The redirected urls' query strings should show values associated with their ids (Primary key) stored in Mysql database.

For instance,

The corresponding values of "id" for 1st, 2nd 3rd and 4th users are 1, 2, 3 & 4

The logged pages / landing pages should look like the following urls respectively after the users are looged in successfully.

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

*The log in session of the log in script is as following:*

// this sets session and logs user in**

session_start();

//prevent against session fixation attacks.

   session_regenerate_id (true); 

// this sets variables in the session

$_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());

//set a 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.";

What header I should use to redirect the users that way? Also, how to create the landing page for the same purpose.

Any help shall be well appreciated.

3条回答
对你真心纯属浪费
2楼-- · 2020-06-06 07:44

When you are checking for a successful log in, return the user's id in your query. Here's some quick pseudocode:

  • In query: Select user_id where user_name = ? and password=?
  • If results.count = 1 then store the user_id as $user_id
  • Redirect to "www.anysite.com/anydirectory/user.php?id=" . $User_Id
查看更多
啃猪蹄的小仙女
3楼-- · 2020-06-06 07:58

Would you like to redirectjust like this :-

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

then only do

header("Location: user.php?id=".$userId);
查看更多
欢心
4楼-- · 2020-06-06 08:05

Just append the user id from your $_SESSION to the URL you're redirecting to.

header('Location: user.php?id=' . $_SESSION['user_id']);
查看更多
登录 后发表回答