Wordpress session variable not working

2019-01-25 16:10发布

问题:

I have an issue with a WordPress session. I have a file 'test.php' that is used post a variable to a WordPress site. It has the condition: "if the session variable is set then the user can access the whole WordPress site, and if the session variable is not set then user can't access the site".

When I post the variable to the WordPress site using test.php the homepage works fine, but when I access inner pages like 'xyz.com/contact' I get an error Not Access which means that the session variable was cleared on the next page.

Here is the test.php file:

<form action="wordpress-site-link" method="POST">
    <input type="submit" name="var" value="go"/>
</form>

In the file themes/theme-name/header.php I wrote this code:

session_start();

if(isset($_SESSION['var'])) {
      echo 'Welcome'; 
}  else if(isset($_POST['var'])) {
       $_SESSION['var'] = $_POST['var']; 
} else {
       echo 'No access...';
       exit; 
}

回答1:

Just hook a function on "init" in your functions.php like this :

function ur_theme_start_session()
{
    if (!session_id())
        session_start();
}
add_action("init", "ur_theme_start_session", 1);

Then u can use your session variables.

I hope that help u.