how to redirect the user back to desired URL after login page in PHP? -


ok. have page called plans.php, inside have 3 links (plan 1, plan 2, plan 3). each link has own page , redirects login page (login.php, works fine). if user not logged in when click lets on "plan 2" force user login can see desired page, depends of "plan" user chooses.

problem: i'm having hard time redirecting user "desired plan (url)".

solution: if user chooses "plan 1 or plan 2 (whatever plan)" force user login (i have working fine), after user logs in user has redirected respective "plan page".

if familiar issue please help.

plans.php

<a href="plan-1.php">plan 1</a> <a href="plan-2.php">plan 2</a> <a href="plan-3.php">plan 3</a>  

plan-2.php

<?php  ob_start();    include "header.php";     if(!$current_user) {       require_login();     }  ob_end_flush(); ?> 

html code: user going see after login page.

<p>hello, have been redirected "plan 2"</p> 

login.php

<?php    ob_start();     include "header.php";     if($current_user) {         req_logout(); }   ob_end_flush(); ?> 

html code:

 <form action="authenticate.php" method="post">   <label for="email">email</label><br/>   <input type"text" class="input" name="username" id="username" />   <label for="password">password</label><br/>   <input name="password" type="password" class="input" id="password"/>   <input type="submit" value="sign in" class="submit"/>  </form> 

this file verifies user credentials login form submits to.

authenticate.php

<?php   session_start();   require_once "db.php";   db_connect();   require_once "auth.php";    $user_id = credentials_valid($_post['username'], $_post['password']);       if($user_id){       log_in($user_id);      if($_session['redirect_to']){           header("location: " . $_session['redirect_to']);           unset($_session['redirect_to']);          }else{          // default page after user logs in.           header("location: manage.php");     }     }else{        header("location: login.php?error=1");        exit("you being redirected");     } ?> 

i have php functions in file.

auth.php

// logs user $user function log_in($user_id){ $_session['user_id'] = $user_id; }   // returns logged in user (if any) function current_user(){ static $current_user; if(!$current_user){     if($_session['user_id']){         $user_id = intval($_session['user_id']);         $query = "select *                   `********`                   `id` = $user_id";          $result = mysql_query($query);         if(mysql_num_rows($result)){             $current_user = mysql_fetch_assoc($result);             return $current_user;         }     } }  return $current_user;    }  // requires current user (restrict access page) function require_login(){ if(!$current_user){        $_session['redirect_to'] = $_server['request_uri'];         header('location: signin.php');     exit("you must log in."); } } 

try send parameter when user clicks on plan link. pass or save parameter , after successful login, use parameter redirect proper page.

in plan-2.php

session_start(); $_session['redirect_to']="plan-2.php"; 

edit: here complete solution using parameter sending via get , post (as have been asked for):

plans.php

<a href="plan.php?no=3">plan 1</a> <a href="plan.php?no=3">plan 2</a> <a href="plan.php?no=3">plan 3</a>  

plan.php

<?php  ob_start();    $getbackurlid=$_get['no'];    include "header.php";     if(!$current_user) {       require_login($getbackurlid);     }  ob_end_flush(); ?> 

signin.php

<?php    ob_start();     include "header.php";     if($current_user) {         req_logout(); }   ob_end_flush(); ?> 

html code:

 <form action="authenticate.php" method="post">   <label for="email">email</label><br/>   <input type"text" class="input" name="username" id="username" />   <label for="password">password</label><br/>   <input name="password" type="password" class="input" id="password"/>   <input type"hidden" name="url" value="<?php echo $_get['url'];?>" />   <input type="submit" value="sign in" class="submit"/>  </form> 

authenticate.php

<?php   session_start();   require_once "db.php";   db_connect();   require_once "auth.php";    $user_id = credentials_valid($_post['username'], $_post['password']);       if($user_id){       log_in($user_id);      if($_post['url']){           header("location: plan.php?no=".$_post['url']);           unset($_session['redirect_to']);          }else{          // default page after user logs in.           header("location: manage.php");     }     }else{        header("location: login.php?error=1");        exit("you being redirected");     } ?> 

auth.php

// logs user $user function log_in($user_id){ $_session['user_id'] = $user_id; }   // returns logged in user (if any) function current_user(){ static $current_user; if(!$current_user){     if($_session['user_id']){         $user_id = intval($_session['user_id']);         $query = "select *                   `********`                   `id` = $user_id";          $result = mysql_query($query);         if(mysql_num_rows($result)){             $current_user = mysql_fetch_assoc($result);             return $current_user;         }     } }  return $current_user;    }  // requires current user (restrict access page) function require_login($getbackurlid){ if(!$current_user){        $_session['redirect_to'] = $_server['request_uri'];         header('location: signin.php?url=$getbackurlid');     exit("you must log in."); } } 

Comments

Popular posts from this blog

linux - xterm copying to CLIPBOARD using copy-selection causes automatic updating of CLIPBOARD upon mouse selection -

c++ - qgraphicsview horizontal scrolling always has a vertical delta -