PHP会话变量未传递到第二页

时间:2018-11-06 10:08:02

标签: php

这似乎很简单,但是无论如何我无法将我的sessionvariable从第一页传递到第二页。 我已经搜索了解决方案,但找不到任何解决方案。据我所知,我在发送任何标题之前都在两个页面上开始会话。

第1页上的代码

<?php session_start()?>
<!DOCTYPE html>
<html>
<head>
    <title></title>
</head>
<body>


<form action="page2.php" method="POST">
<input type="text" name="username" id="username">
<input type="submit" name="submit" id="submit">


<?php if(isset($_POST['submit'])) {

$username = $_POST['username'];

    $_SESSION['username'] = $username;

}

?>
</form>

</body>
</html>

第2页的代码

<?php session_start()?>
<!DOCTYPE html>
<html>
<head>
    <title></title>
</head>
<body>

<?php 

    echo "This is from my session: "." ". $_SESSION['username'];

?>


</body>
</html>

因此在第二页(page2.php)上,出现此错误:

  

注意:未定义的变量:用户名位于C:\ xampp \ htdocs \ page2.php中   第12行

这是在我的会议上

3 个答案:

答案 0 :(得分:9)

您的表单发布到=CurrentRecord,因此page2.php上没有达到会话设置位 您需要将该代码添加到page1.php

page2.php

答案 1 :(得分:0)

查看您的代码-错误在page2.php上,您将表单提交到page2.php,但未在page2.php中设置任何值。

应该是这样的:

page1

<?php session_start()?>
<!DOCTYPE html>
<html>
<head>
    <title></title>
</head>
<body>    

<form action="page2.php" method="POST">
  <input type="text" name="username" id="username">
  <input type="submit" name="submit" id="submit">
</form>

</body>
</html>

第2页

    <?php session_start()?>
    <!DOCTYPE html>
    <html>
    <head>
        <title></title>
    </head>
    <body>

    <?php 

    if(!empty($_POST['username'])) {
        $username = $_POST['username'];
        $_SESSION['username'] = $username;
    }
    echo "This is from my session: "." ". $_SESSION['username'];

    ?>


    </body>
    </html>

答案 2 :(得分:-1)

有推荐的答案很好用。以下内容也应该起作用。我认为最基本的是检查会话是否可以从一页传递到另一页。请参见下面的代码。基本上有两件事-1.表单操作应设置在同一页面上&2.设置会话后重定向

注意:page2.php不需要更改

<?php session_start()?>
<!DOCTYPE html>
<html>
<head>
    <title></title>
</head>
<body>
    <form action="" method="POST">
        <input type="text" name="username" id="username">
        <input type="submit" name="submit" id="submit">
        <?php 
        if(isset($_POST['submit'])) {
            $username = $_POST['username'];
            $_SESSION['username'] = $username;
            header("Location: page2.php");
        }

        ?>
    </form>
</body>
</html>