会话变量通过POST保持不变

时间:2014-03-26 16:22:08

标签: php variables post

有人可以在我的代码中看到错误吗?

两个文件,使用JS在第一页上设置一个变量,我想将它传递给下一页。

用户名变量在此处设置,首先在变量中然后在会话中

username = wordOne + wordTwo + wordThree;
<?php $_SESSION['username'] = $username; ?>

然后我提交了将用户带到register-form.php

的表单
<form method="POST" action="register-form.php">
    <button>I like it! Make it my username.</button>
</form>

加载该页面时,会抓取用户名并将其作为值输出到输入中

<body onload="inputUsername()">


function inputUsername(){
 var username = "<?php echo isset($_POST[username])?$_POST[username]:''; ?>";
 console.log("I'm running " + username);
 document.getElementById('inputUsername').value = username;
}

但是这并不起作用,因为变量username不会在页面中持续存在。

2 个答案:

答案 0 :(得分:1)

我看到的是你要求$_POST[username],但是从你没有传递它的表格中提取。我的意思是:

<form method="POST" action="register-form.php">
    <input type="hidden" name="username" value="<?php echo $_SESSION['username']; ?>">
    <button>I like it! Make it my username.</button>

答案 1 :(得分:0)

在当前代码中,您正在访问_POST变量,但是您在代码中设置了_SESSION变量。因此,可能的解决方法是: 1.在inputUsername()函数OR中检查_SESSION变量 2.在表单中设置用户名,以便在提交时将其发布到新页面。