简体   繁体   中英

Session fails after dynamic header redirect

I've been struggling with this for a long time and I've read dozens of posts pertaining to it, but nothing has helped me solve this.

I have a check set up so if you're not logged into my site, it sends you to the log in page with a $_GET variable containing the information needed to be redirected back after a successful log in.

On the sign in page, I send an HTML form to a " checklogin.php " file in order to log in the user if the username and password match the database (I also pass the original $_GET variable for the redirect as a $_POST variable this time to keep the 'bread crumbs' connected). If the log in info matches, I start a session and assign session variables with some information about the user.

At the bottom of the page, after a successful log in, I do this to get back to where they were before:

$go = "http://something/page.php?id=".$_POST['breadcrumb'];
header($go);

This works... initially (the session variable is successfully passed to page.php ). But then the very next page a user clicks to go to, the session ends and he/she is no longer logged in.

So frustrating! The session_start() is at the top of every single page. And the session is successful throughout when the user just logs in without the dynamic header redirect (without the $_POST['breadcrumb'] ).

I've tried many different solutions and nothing fixes this problem.

Have you checked all the code to make sure there isnt a session destroy in there somewhere? You could also try using $_SERVER['REQUEST_URI']; to obtain your redirect url then just insert that into the header code so it would be.

header("location: <breadcrumb>);

The problem was that I didn't keep my url redirects consistent throughout the site. Sometimes I had

www.website.com/home.php

and sometimes I had

/home.php

which screwed up the $SESSION.

The solution was to keep my header redirects all consistently without (or all consistently with) "www.website.com" in the beginning of the URL.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM