在提交时,保存到SESSION并将此SESSION发送到新的php页面

时间:2016-06-08 16:25:24

标签: php session

这是我的代码。这是在登录页面。

           success: function (result) {
                var dataRID;
                dataRID = result;
                ridAppList = JSON.stringify(dataRID);
                alert(ridAppList);

            },

这是在点击登录按钮后打开的BAMainPage。

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会显示此错误。

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

为什么没有定义用户名?我已将值保存到Notice: Undefined index: username in C:\xampp\htdocs\BHBOnlineRetailPHP\BAMainPage.php

3 个答案:

答案 0 :(得分:1)

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

所以只需移动

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

到BAMainPage然后回复它,你就可以看到它,从那里你就可以在其他地方继续会话而$SESSION['username ']会跟着你

答案 1 :(得分:0)

早些时候它没有得到你的$ _POST ['用户名']。

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

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

之后你可以写:

<%= "a,b,c".split(',') %>

在您想要的任何页面中。

答案 2 :(得分:0)

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

此代码永远不会执行:

$_SESSION['username'] = $_POST['username'];

因为您从未将表单发布到该页面。您将其发布到其他页面:

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

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