使用PHP传递会话变量时出现问题

使用PHP传递会话变量时出现问题,php,Php,我试图通过尝试以下代码来理解会话变量。为了测试的目的,我创建了3个页面并尝试传递会话变量。我注意到,会话变量没有填充在第3页中。我一直在寻找问题所在,但我还没有找到答案 第1页 生物数据 名字 姓 第2页 生物数据显示 PHP中的会话通过保存一个由特殊cookie(默认名为PHPSESSID)引用的数据文件服务器端来工作,因此当浏览器发送正确的cookie时,PHP会从保存的数据文件中获取上一个$\u会话值。这意味着: 您的服务器必须能够写入文件(通常在tmp目录中,检查与会话保存路径相关

我试图通过尝试以下代码来理解会话变量。为了测试的目的,我创建了3个页面并尝试传递会话变量。我注意到,会话变量没有填充在第3页中。我一直在寻找问题所在,但我还没有找到答案

第1页


生物数据
名字
姓
第2页


生物数据显示

PHP中的会话通过保存一个由特殊cookie(默认名为PHPSESSID)引用的数据文件服务器端来工作,因此当浏览器发送正确的cookie时,PHP会从保存的数据文件中获取上一个$\u会话值。这意味着:

  • 您的服务器必须能够写入文件(通常在tmp目录中,检查与会话保存路径相关的PHP INI设置)
  • 您的浏览器必须接受cookies(您可以通过转储$\u COOKIE轻松检查)
  • 要简化测试,请创建如下单个页面:

    <?php
    session_start();
    header("Content-Type: text/plain");
    var_dump($_COOKIE);
    var_dump($_SESSION);
    $_SESSION['hello'] = "world";
    

    我觉得这没问题。您是否测试了第2页中的
    $\u SESSION['fst\u name']
    是否具有预期值,或者$\u POST是否具有预期值?“SESSION变量未填充在第3页中”-哪一页,您有两个,并且看不到您已将任何内容分配给
    $\u SESSION['last']
    @Jeff
    $\u SESSION['fst\u name
    ]在第2页上有值。@Fred ii-我已更正了代码。第3页上没有任何会话变量。我想在第2页上看到$\u SESSION中的数据。我真的不知道为什么它会出现在第3页上。
    <?php
    session_start();
    
    if (isset($_POST["submit"])){           
        $_SESSION['fst_name'] = $_POST['fst_name'] ;
        $_SESSION['lst_name' ] = $_POST['lst_name'] ;
        header("location:display.php");
    }else{
        echo "Error";
    }
    
    <?php
    session_start();
    echo $_SESSION['fst_name'];
    ?>
    <!DOCTYPE html>
    <html lang="en">
        <head>
            <meta charset="UTF-8">
            <title>Biodata Display</title>
        </head>
        <body>
            <table>
                <tr>
                    <td><?php echo "Hello " .  $_SESSION['fst_name']; ?></td>
                    <td><?php echo $_SESSION['lst_name']; ?></td>
                </tr>
            </table>    
        </body>
    </html>
    
    <?php
    session_start();
    header("Content-Type: text/plain");
    var_dump($_COOKIE);
    var_dump($_SESSION);
    $_SESSION['hello'] = "world";