开发者

PHP $_SESSION empty after header redirect

I'm losing the data in $_SESSION when I do a header redirect. When I walk through this with a debugger I can see all my data in $_SESSION before I exit();

Login.php :

...

if($result == 1){       
    header("Location: /myaccount.php");
    session_write_close();
    exit();
} else {
    header("Location: /login.php?invalid=yes");
    exit();
} 

Then I put a breakpoint after the session_start() condition开发者_运维问答al below and $_SESSION is completely empty.

myaccount.php:

<?php
if(!isset($_SESSION['user_id'])) { session_start(); }

$docRoot = getenv("DOCUMENT_ROOT");
...

Where did my session go?


Make sure you are using the function session_start(); before the if-statement on myaccount.php


You should call session_start() on every page accessing (that is, reading or writing) $_SESSION, and call it before any access to the session array. So, be sure you call session_start() on both pages.


Yes don't delete post ... I had EXACTLY the same issue, and this post caused me to involuntarily smack palm firmly against forehead. And it fixed the problem (with my code that is, not my dumbness). Cheers!

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜