How to redirect the users to their id specific urls/landing pages after they log in?

亡梦爱人 提交于 2019-12-04 14:51:20

问题


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.


回答1:


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

header('Location: user.php?id=' . $_SESSION['user_id']);



回答2:


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:


Would you like to redirectjust like this :-

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

then only do

header("Location: user.php?id=".$userId);


来源:https://stackoverflow.com/questions/8504539/how-to-redirect-the-users-to-their-id-specific-urls-landing-pages-after-they-log

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!