aebstract Posted March 3, 2009 Author Share Posted March 3, 2009 err... so I thought this was somehow affecting the header() instead of me having to do header_()... This defeats the whole purpose of doing this. If I was to do that, I might as well just set a session there too. It was to save me from going through and finding every spot that header was needing to be used. Quote Link to comment Share on other sites More sharing options...
premiso Posted March 3, 2009 Share Posted March 3, 2009 err... so I thought this was somehow affecting the header() instead of me having to do header_()... This defeats the whole purpose of doing this. If I was to do that, I might as well just set a session there too. It was to save me from going through and finding every spot that header was needing to be used. Not possible, as far as I know. Since PHP does not except overriding of functions. The other option, each page you set the "last_page" session before you call the header function. Either way you have to do some leg work. Quote Link to comment Share on other sites More sharing options...
aebstract Posted March 3, 2009 Author Share Posted March 3, 2009 Hmm, is there a way to tell if the page you landed on was because you were directed by the header function? Quote Link to comment Share on other sites More sharing options...
trq Posted March 3, 2009 Share Posted March 3, 2009 Hmm, is there a way to tell if the page you landed on was because you were directed by the header function? No. Quote Link to comment Share on other sites More sharing options...
premiso Posted March 3, 2009 Share Posted March 3, 2009 You can check $_SERVER['HTTP_REFERER']. But that is dependent on a user. If they choose to shut that off, it will not send it etc. Very un-reliable. If you really want to. At the top of each page, you can have 2 session variable settings. 'this_page' and 'last_page' if last_page is not set then set it to this_page. Then on page load, if last_page is set, you can store that somewhere for the page you are on in a variable then you set last_page to be this_page and this_page to be the page you are on. Then in a regular variable you hold $lastpage which will contain the real last page for use on that page only. A little crazy on the logic, but it would/should work. Quote Link to comment Share on other sites More sharing options...
aebstract Posted March 3, 2009 Author Share Posted March 3, 2009 Okay I'm basically trying what you have described premiso, which was the basic idea I had when I was trying to think of a new way to approach it. I have this for the top of my index page: <?php session_start(); header("Cache-control: private"); $lastpage = $_SESSION['last_page']; $_SESSION['last_page'] = $_SESSION['this_page']; if (isset($_GET['page'])){ $_SESSION['this_page'] = "$_SERVER[php_SELF]?page=$_GET "; } else { $_SESSION['this_page'] = $_SERVER['PHP_SELF']; } Trying to simply echo the lastpage variable when I'm on my login page. Here is what happens: I'm on home page. Go to contact page. Go to login page. ---> displays: /performance/index.php?page=login f5-> displays: /performance/index.php?page=contact f5-> displays: /performance/index.php?page=login How come I have to refresh to see "contact" as the previous page, when it was in fact the previous page. It has like a "lag" on it, do you see what is causing this? Quote Link to comment Share on other sites More sharing options...
premiso Posted March 3, 2009 Share Posted March 3, 2009 <?php session_start(); header("Cache-control: private"); $lastpage = isset($_SESSION['last_page'])?$_SESSION['last_page']:''; $_SESSION['last_page'] = $_SESSION['this_page']; if (isset($_GET['page'])){ $_SESSION['this_page'] = "{$_SERVER['PHP_SELF']}?page={$_GET['page']}"; } else { $_SESSION['this_page'] = $_SERVER['PHP_SELF']; } echo "The last page you were on was: {$lastpage} <br /> The current page is: {$_SESSION['this_page']} <Br /> The new last page is {$_SESSION['last_page']}<br />"; echo "<a href=test.php?page=1>Page 1</a> | <a href=test.php?page=2>Page 2</a> | <a href=test.php?page=3>Page 3</a>"; die(); ?> I do not know what you are doing as you only show part of the code. Given the above code, everything works fine on my end, and as expected. Output: The last page you were on was: /test.php?page=3 The current page is: /test.php?page=3 The new last page is /test.php?page=2 Page 1 | Page 2 | Page 3 This was going from the "Page 3" link to the "Page 2" Quote Link to comment Share on other sites More sharing options...
aebstract Posted March 3, 2009 Author Share Posted March 3, 2009 Whys it say your current page is 3? Quote Link to comment Share on other sites More sharing options...
premiso Posted March 3, 2009 Share Posted March 3, 2009 It was a messup on my part. The last page you were on was: /test.php?page=3 The current page is: /test.php?page=3 The new last page is /test.php?page=1 Page 1 | Page 2 | Page 3 That is going from Page 1 to Page 3. It works as expected, I just mixed up the words. Give it a try and see, create a simple test.php and paste that code in it, and it should work like expected. 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.