twilitegxa Posted July 21, 2009 Share Posted July 21, 2009 How can I store each page as a session so that when a user is asked to log in to view a particular page, that I can redirect them to the last page they were viewing? Quote Link to comment Share on other sites More sharing options...
BillyBoB Posted July 21, 2009 Share Posted July 21, 2009 What about HTTP_REFERER just call upon the $_SERVER['HTTP_REFERER'] variable and it would tell you where they just were at. http://us2.php.net/manual/en/reserved.variables.server.php Quote Link to comment Share on other sites More sharing options...
simon551 Posted July 21, 2009 Share Posted July 21, 2009 or you could do something like this. put this on your pages: $page='fullurlofyourpage'; $_SESSION['referer']=$page; Then on your login page check to see if there is is a referer: //after logging in if(! $_SESSION['referer']==''){ //do something to redirect header("Location: ". $_SESSION['referer']); } Quote Link to comment Share on other sites More sharing options...
ldougherty Posted July 21, 2009 Share Posted July 21, 2009 This article should provide assistance. http://www.dezinerfolio.com/2008/01/09/back-to-previous-page-php Quote Link to comment Share on other sites More sharing options...
The Little Guy Posted July 21, 2009 Share Posted July 21, 2009 If the login is on the page that you want to redirect the user to, just place the name of the page in a hidden field, then: <form action="login.php" method="post"> <intput type="text" name="username" /> <intput type="password" name="password" /> <intput type="hidden" name="location" value="<?php echo $_SERVER['REQUEST_URI'];?>" /> </form> header("Location: {$_POST['location']}"); exit; Quote Link to comment Share on other sites More sharing options...
twilitegxa Posted July 21, 2009 Author Share Posted July 21, 2009 I currently have the following code: <?php //Access Tracking Snippet //set up static variables $page_title = "login.php"; $user_agent = getenv("HTTP_USER_AGENT"); $date_accessed = date("Y-m-d"); //connect to server and select database $conn = mysql_connect("localhost", "root", "") or die(mysql_error()); $db = mysql_select_db("smrpg", $conn) or die(mysql_error()); //create and issue query $sql = "insert into access_tracker values ('', '$page_title', '$user_agent', '$date_accessed')"; mysql_query($sql,$conn); ?> <?php session_start(); $user_area_location = 'account.php'; // Location of the user area // Connect to MySQL database: $access = mysql_connect('localhost','root','') or die ('Could not connect to database'); mysql_select_db('smrpg',$access) or die ('Could not select table'); # # $error = array(); if(isset($_GET['action'])) { switch($_GET['action']) { case 'logoff': unset($_SESSION['loggedIn']); array_push($error, 'You were logged off.'); break; } } if(!$error) { if(empty($_POST['username'])) { array_push($error, 'You didn\'t supply a username'); } if(empty($_POST['password'])) { array_push($error, 'You didn\'t supply a password'); } } if(!$error){ $result = @mysql_query('SELECT username, email, name FROM `users` WHERE username = \''.mysql_real_escape_string($_POST['username']).'\' AND password = \''.mysql_real_escape_string(md5($_POST['password'])).'\''); if($row = @mysql_fetch_array($result)) { $_SESSION['loggedIn'] = true; $_SESSION['userName'] = $row['username']; $_SESSION['userMail'] = $row['email']; $_SESSION['name'] = $row['name']; header('Location: '.$user_area_location); die('<a href="'.$user_area_location.'">Go to your user account</a>'); }else{ array_push($error, 'The username or password you provided were not correct'); } } ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <title>Sailor Moon RPG - Login</title> <!-- Source File --> <style type="text/css" media="screen"> /*<![CDATA[*/ @import url(global.css); /*]]>*/ </style> </head> <body> <!-- HEADER --> <h1 class="logo">Sailor Moon RPG</h1> <!-- /HEADER --> <?php include("topnav.php"); ?> <div id="main"> <?php include("includes/log.php"); ?> <?php include("mainnav.php"); ?> <table cellspacing="2" cellpadding="0" border="0"> <form method="post" action="login.php"> <?php if(isset($error) && $error) { ?> <tr> <td colspan="2"> <ul><?php foreach($error as $key => $value) echo '<li>'.$value.'</li>'; ?></ul> </td> </tr><?php } ?> <tr> <td>Username:</td> <td><input type="text" name="username" /></td> </tr> <tr> <td>Password:</td> <td><input type="password" name="password" /></td> </tr> <tr> <td> </td> <td><input type="submit" name="submit" value="Login!" /> <a href="forgot.php">I forgot my username or password</a></td> </tr> </form> </table> </div> <?php include("bottomnav.php"); ?> <!-- FOOTER --> <div id="footer_wrapper"> <div id="footer"> <p>Sailor Moon and all characters are<br> trademarks of Naoko Takeuchi.</p> <p>Copyright © 2009 Liz Kula. All rights reserved.<br> A product of <a href="#" target="_blank">Web Designs By Liz</a> systems.</p> <div id="foot-nav"><!-- <ul> <li><a href="http://validator.w3.org/check?uri=http://webdesignsbyliz.com/digital/index.php" target="_blank"><img src="http://www.w3.org/Icons/valid-xhtml10-blue" alt="Valid XHTML 1.0 Transitional" height="31" width="88" /></a></li> <li><a href="http://jigsaw.w3.org/css-validator/validator?uri=http://webdesignsbyliz.com/digital/global.css" target="_blank"><img class="c2" src="http://jigsaw.w3.org/css-validator/images/vcss-blue" alt="Valid CSS!" /></a></li> </ul> --></div> </div> </div> <!-- /FOOTER --> </body> </html> How can I change this to use the example you provided? I apparently currently have it set to go to a specific page, which is not what I want now. I now want it to go to the previous page they were attempting to view. How do I change my code? I don't want to mess up what I already have :-( Quote Link to comment Share on other sites More sharing options...
twilitegxa Posted July 21, 2009 Author Share Posted July 21, 2009 On each page I have the include: <?php include("includes/log.php"); ?> And here is the code for the include: <div id="log"> <?php if (isset($_SESSION['loggedIn']) == 1) { ?> <p>Welcome, <?php echo $_SESSION['userName'] ?> (<a href="login.php?action=logoff" title="Log Out">Log Out</a>)</p> <?php } else { ?> <p>Please <a href="login.php">log in</a></p> <?php } ?> </div> Quote Link to comment Share on other sites More sharing options...
The Little Guy Posted July 21, 2009 Share Posted July 21, 2009 just add this line to the login form: <intput type="hidden" name="location" value="<?php echo $_SERVER['REQUEST_URI'];?>" /> and in your login.php file, when you redirect a user to a page using header use this line: header("Location: {$_POST['location']}"); Quote Link to comment Share on other sites More sharing options...
The Little Guy Posted July 21, 2009 Share Posted July 21, 2009 Never mind, you use a link to get to the login form I see. do this to your login link: <p>Please <a href="login.php?location=<?php echo $_SERVER['REQUEST_URI'];?>">log in</a></p> and this to redirect after the user logs in: header("Location: {$_GET['location']}"); Quote Link to comment Share on other sites More sharing options...
twilitegxa Posted July 21, 2009 Author Share Posted July 21, 2009 Firstly, I get this error: Notice: Undefined index: location in C:\wamp\www\login.php on line 49 How do I define the location index? Secondly, it logs the user in, but redirects them to the log in page as if they still need to log in (but still shows them logged in on the right). Maybe this is the problem: I have the page set to go to the login.php page if they are not logged in in order to view the page (in this case, the page is named creationform.php). So, if a viewer chooses to view scout.php, it directs them to the login.php page. So when the login is complete, it is redirecting them to the login page, which is the last page they were at. Can I instead write it to where if not logged in, it displays the login script instead of the page, that way they don't leave the page? Here are some examples of my pages: creationform.php <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html lang="en"> <?php session_start(); if(!isset($_SESSION['loggedIn'])) { header("Location: login.php"); } //Access Tracking Snippet //set up static variables $page_title = "creationform.php"; $user_agent = getenv("HTTP_USER_AGENT"); $date_accessed = date("Y-m-d"); //connect to server and select database $conn = mysql_connect("localhost", "root", "") or die(mysql_error()); $db = mysql_select_db("smrpg", $conn) or die(mysql_error()); //create and issue query $sql = "insert into access_tracker values ('', '$page_title', '$user_agent', '$date_accessed')"; mysql_query($sql,$conn); $gender = (!empty($_POST['gender']))?$_POST['gender']:""; //Male or female? $status = (!empty($_POST['status']))?$_POST['status']:""; //Hero or villain? if($status == "villain"){ if($gender == "male") { //You are a male villain header("Location: mdark_warrior.php"); exit; }elseif($gender == "female"){ //You are a female villain header("Location: fdark_warrior.php"); exit; } }elseif($status == "hero"){ if($gender == "male"){ //You are a male hero! header("Location: knight.php"); exit; }elseif($gender == "female"){ //You are a female hero! header("Location: scout.php"); exit; } } ?> <head> <title>Sailor Moon RPG - Character Creation - Step 2: Character Outline</title> <style type="text/css" media="screen"> /*<![CDATA[*/ @import url(global.css); /*]]>*/ </style> </head> <body> <!-- HEADER --> <h1 class="logo">Sailor Moon RPG</h1> <!-- /HEADER --> <?php include("topnav.php"); ?> <div id="main"> <?php include("includes/log.php"); ?> <?php include("mainnav.php"); ?> <h1>Step 2: Character Outline - Creation</h1> <form action="<?php echo $_SERVER['PHP_SELF']?>" method="post"> <table> <tr> <td>Would you like to create a:</td> <td><input type="radio" name="status" value="hero"> Hero or a <input type="radio" name="status" value="villain" class="input1"> Villain</td> </tr> <tr> <td></td> <td><input type="radio" name="gender" value="female"> Female or <input type="radio" name="gender" value="male"> Male</td> </tr> </table> <br> <input type="submit" name="submit" value="Create Character" class="button1"> <input type="reset" name="reset" value="Reset"></form> </div> <?php include("bottomnav.php"); ?> <!-- FOOTER --> <div id="footer_wrapper"> <div id="footer"> <p>Sailor Moon and all characters are<br> trademarks of Naoko Takeuchi.</p> <p>Copyright © 2009 Liz Kula. All rights reserved.<br> A product of <a href="#" target="_blank">Web Designs By Liz</a> systems.</p> <div id="foot-nav"><!-- <ul> <li><a href="http://validator.w3.org/check?uri=http://webdesignsbyliz.com/digital/index.php" target="_blank"><img src="http://www.w3.org/Icons/valid-xhtml10-blue" alt="Valid XHTML 1.0 Transitional" height="31" width="88" /></a></li> <li><a href="http://jigsaw.w3.org/css-validator/validator?uri=http://webdesignsbyliz.com/digital/global.css" target="_blank"><img class="c2" src="http://jigsaw.w3.org/css-validator/images/vcss-blue" alt="Valid CSS!" /></a></li> </ul> --></div> </div> </div> <!-- /FOOTER --> </body> </html> log.php include <div id="log"> <?php if (isset($_SESSION['loggedIn']) == 1) { ?> <p>Welcome, <?php echo $_SESSION['userName'] ?> (<a href="login.php?action=logoff" title="Log Out">Log Out</a>)</p> <?php } else { ?> <p>Please <a href="login.php?location=<?php echo $_SERVER['REQUEST_URI'];?>">log in</a></p> <?php } ?> </div> login.php <?php //Access Tracking Snippet //set up static variables $page_title = "login.php"; $user_agent = getenv("HTTP_USER_AGENT"); $date_accessed = date("Y-m-d"); //connect to server and select database $conn = mysql_connect("localhost", "root", "") or die(mysql_error()); $db = mysql_select_db("smrpg", $conn) or die(mysql_error()); //create and issue query $sql = "insert into access_tracker values ('', '$page_title', '$user_agent', '$date_accessed')"; mysql_query($sql,$conn); ?> <?php session_start(); //$user_area_location = 'account.php'; // Location of the user area // Connect to MySQL database: $access = mysql_connect('localhost','root','') or die ('Could not connect to database'); mysql_select_db('smrpg',$access) or die ('Could not select table'); # # $error = array(); if(isset($_GET['action'])) { switch($_GET['action']) { case 'logoff': unset($_SESSION['loggedIn']); array_push($error, 'You were logged off.'); break; } } if(!$error) { if(empty($_POST['username'])) { array_push($error, 'You didn\'t supply a username'); } if(empty($_POST['password'])) { array_push($error, 'You didn\'t supply a password'); } } if(!$error){ $result = @mysql_query('SELECT username, email, name FROM `users` WHERE username = \''.mysql_real_escape_string($_POST['username']).'\' AND password = \''.mysql_real_escape_string(md5($_POST['password'])).'\''); if($row = @mysql_fetch_array($result)) { $_SESSION['loggedIn'] = true; $_SESSION['userName'] = $row['username']; $_SESSION['userMail'] = $row['email']; $_SESSION['name'] = $row['name']; header("Location: {$_GET['location']}"); //die('<a href="'.$user_area_location.'">Go to your user account</a>'); }else{ array_push($error, 'The username or password you provided were not correct'); } } ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <title>Sailor Moon RPG - Login</title> <!-- Source File --> <style type="text/css" media="screen"> /*<![CDATA[*/ @import url(global.css); /*]]>*/ </style> </head> <body> <!-- HEADER --> <h1 class="logo">Sailor Moon RPG</h1> <!-- /HEADER --> <?php include("topnav.php"); ?> <div id="main"> <?php include("includes/log.php"); ?> <?php include("mainnav.php"); ?> <table cellspacing="2" cellpadding="0" border="0"> <form method="post" action="login.php"> <?php if(isset($error) && $error) { ?> <tr> <td colspan="2"> <ul><?php foreach($error as $key => $value) echo '<li>'.$value.'</li>'; ?></ul> </td> </tr><?php } ?> <tr> <td>Username:</td> <td><input type="text" name="username" /></td> </tr> <tr> <td>Password:</td> <td><input type="password" name="password" /></td> </tr> <tr> <td> </td> <td><input type="submit" name="submit" value="Login!" /> <a href="forgot.php">I forgot my username or password</a> <input type="hidden" name="location" value="<?php echo $_SERVER['REQUEST_URI'];?>" /></td> </tr> </form> </table> </div> <?php include("bottomnav.php"); ?> <!-- FOOTER --> <div id="footer_wrapper"> <div id="footer"> <p>Sailor Moon and all characters are<br> trademarks of Naoko Takeuchi.</p> <p>Copyright © 2009 Liz Kula. All rights reserved.<br> A product of <a href="#" target="_blank">Web Designs By Liz</a> systems.</p> <div id="foot-nav"><!-- <ul> <li><a href="http://validator.w3.org/check?uri=http://webdesignsbyliz.com/digital/index.php" target="_blank"><img src="http://www.w3.org/Icons/valid-xhtml10-blue" alt="Valid XHTML 1.0 Transitional" height="31" width="88" /></a></li> <li><a href="http://jigsaw.w3.org/css-validator/validator?uri=http://webdesignsbyliz.com/digital/global.css" target="_blank"><img class="c2" src="http://jigsaw.w3.org/css-validator/images/vcss-blue" alt="Valid CSS!" /></a></li> </ul> --></div> </div> </div> <!-- /FOOTER --> </body> </html> Can this be done? Quote Link to comment Share on other sites More sharing options...
twilitegxa Posted July 21, 2009 Author Share Posted July 21, 2009 Or is there a way to have it redirect two pages back (since they access the page that they must be logged into [creationform.php], then it takes them to login.php) then after logging in they'd have to go back tow pages, right? Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.