提交时,保存到会话中,并将此会话发送到新的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'];
}