PHP会话变量 - 我做错了什么?

时间:2015-06-03 02:56:55

标签: php session

我需要一些会话变量的帮助。我以前用过它们,但已经有一段时间了,显然我错过了一些东西。我编写了以下示例,演示了我认为会话变量应该如何工作,但我遗漏了一些东西。从page1.php提交值,将值传递给page2.php。会话变量已填充,在page2.php上正确显示但是,一旦我返回page1.php,该变量为空。我搞砸了哪里?     谢谢!

/* page1.php code ============================== */
    <?php session_start(); ?>

    <!DOCTYPE html>
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <title>Page 1</title>
    </head>
    <body>

        <form method='post' id='pf' action='page2.php'>
            <input type='text' id='box_inp' size='1' name='pBox'/>
            <input type="submit" value="Submit">
        </form><br/><br/>

        <?php print_r($_SESSION); ?>
    </body>
    </html>
/* page1.php end ============================== */


/* page2.php code ============================== */
    <?php
        session_start();
        $_SESSION["x_test"] = $_POST["pBox"];
    ?>

    <!DOCTYPE html>
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <title>Page 2</title>
    </head>
    <body>

        <?php print_r($_SESSION); ?>

        <br/><br/>

        <a href="page1.php">Back</a>
    </body>
    </html>
/* page2.php end ============================== */

1 个答案:

答案 0 :(得分:0)

好的,你的代码运行正常。看起来您的问题来自您的确认。检查php.ini中的会话配置。 这是手册。 http://php.net/manual/en/session.configuration.php

这是一个完整的标准配置,你的会话配置应该可以工作:

session.save_handler = files

session.use_only_cookies = 1

session.name = PHPSESSID

session.auto_start = 0

session.cookie_lifetime = 0

session.cookie_path = /

session.cookie_domain =

session.cookie_httponly =

session.serialize_handler = php

session.gc_probability = 1

session.bug_compat_42 = On

session.bug_compat_warn = On

session.referer_check =

session.cache_limiter = nocache

session.cache_expire = 180