提交时,保存到会话中,并将此会话发送到新的php页面

提交时,保存到会话中,并将此会话发送到新的php页面,php,session,Php,Session,这是我的密码。这在登录页面中 session_start(); if (isset($_POST['username'])) { $_SESSION['username'] = $_POST['username']; } <form action="BAMainPage.php" method="post"> <button type="submit" id="login" onclick="loginfunction()" >Log In</bu

这是我的密码。这在登录页面中

session_start();
if (isset($_POST['username'])) {
    $_SESSION['username'] = $_POST['username'];
}

<form action="BAMainPage.php" method="post">
    <button type="submit" id="login" onclick="loginfunction()" >Log In</button>
    <script>
    function loginfunction() {
        if(document.getElementById('username').value!=="") {    
            //location.href="http://localhost/bhbonlineretailphp/BAMainPage.php";                           
        } else {
            alert("failed");
        }                      
    }
    </script>
</form>
但是,打开时,BAMainPage会显示此错误

Notice: Undefined index: username in C:\xampp\htdocs\BHBOnlineRetailPHP\BAMainPage.php

为什么没有定义用户名?我已经将该值保存到
$\u SESSION['username']

之前,它没有收到您的$\u POST['username']

您的登录操作是BAMainPage.php。因此,一旦您在这里获得表单POST数据,您就应该在这个页面中编写会话,而不是在上一个页面中编写会话

// BAMainPage.php
session_start();
if (isset($_POST['username'])){
    $_SESSION['username'] = $_POST['username'];
}
然后你可以写:

session_start();
echo $_SESSION['username'];

在您想要的任何页面中。

[假设您只是忘记在发布的代码中包含一些表单元素…]

此代码从不执行:

$_SESSION['username'] = $_POST['username'];
因为你从未将表单发布到该页面。您可以将其发布到其他页面:

<form action="BAMainPage.php" method="post">


因此,在
BAMainPage.php
上,您可以访问
$\u POST['username']
。基本上,在这个交互中根本不需要使用会话状态。表单值直接发送到
BAMainPage.php

看起来您正在将用户名发布到BAMainPage.php,这意味着您需要从那里的帖子中分配用户名,而不是在提交表单的同一文件中

那就走吧

session_start();
if (isset($_POST['username'])){
        $_SESSION['username'] = $_POST['username'];
    }

到BAMainPage,然后回显它,您将能够看到它,从那里开始,您可以在其他地方继续会话,
$session['username']
将跟随您

您仅在设置了
$\u POST['username']
时将值保存到会话,但从外观来看,您的表单指向另一个文件,这样代码就不会运行了。还有一个问题是,您似乎没有定义
username
的输入,这使得第一点毫无意义。OMG它可以工作!谢谢哈哈,我已经花了两个小时在这个问题上,似乎不能解决这个问题。还有一个问题,这是否意味着我的行为会将我的帖子带到下一页?因此,我必须在下一页中调出帖子?是的,但您可以将操作指定为将表单发布到与此相同的页面。操作=没问题,请通过我的github帐户github.com/rojobo与我联系
session_start();
if (isset($_POST['username'])){
        $_SESSION['username'] = $_POST['username'];
    }