我有一个网站,让我登录并显示一个新表单,以便在用户登录后发布艺术品。
<?php
if (!empty($_POST['username']) && !empty($_POST['password'])){
if (empty($fetchedRows)) {
echo "<p>Invalid username and/or password</p>";
}
else {
echo "<p>Logged in</p>";
header ('Location: index.php?user=' . $_POST['username']);
?>
<form method="post" id="post-article">
</form>
<?php
}
}
?>
我想在我的 URL 中显示用户名。这有效,但是当我到达header ('Location: index.php?user=' . $_POST['username']);
时,其余代码将无法运行。如果用户凭据有效,它应该显示一个新表单。
如果我删除header(...);
行,所有这些都有效。
将您的表单代码放在索引上.php
<form method="post" id="post-article">
</form>
- 您正在检查开机自检[用户名]和开机自检[密码]。
- 如果一切正常,则使用 GET[user] (index.php?user=xxx) 将其重定向到同一位置(索引.php)
- 现在进入索引.php,没有 POST[用户名] 和 POST[密码]。所以它应该显示"无效的用户名和/或密码"
做的是,你应该先检查$_SESSION[用户名]。如果为空,则应检查 POST[用户名] 和 POST[密码]。如果一切正常,您将执行 $_SESSION[用户名] = $_POST[用户名],然后重定向。