使用标题(...)显示URL中的用户名;

时间:2016-02-25 14:30:48

标签: php url login http-headers

我有一个网站让我登录并显示一个新表单,以便在用户登录后发布一条artcile。

<?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
    }
  }
?>

我希望在我的网址中显示用户名。这有效,但是当我到达header ('Location: index.php?user=' . $_POST['username']);时,其余代码将无法运行。如果用户凭据有效,则应显示新表单。

如果删除header(...);行,则所有内容都有效。

2 个答案:

答案 0 :(得分:0)

将表单代码放在 index.php

<form method="post" id="post-article">
    </form>

答案 1 :(得分:0)

  1. 您正在检查POST [用户名]和POST [密码]。
  2. 如果一切正常,您将使用GET [user](index.php?user = xxx)将其重定向到同一位置(index.php)
  3. 现在来到index.php,没有POST [用户名]和POST [密码]。因此它应显示“无效的用户名和/或密码”
  4. 你应该做的是,你应该首先检查$ _SESSION [用户名]。如果它为空,则应检查POST [用户名]和POST [密码]。如果一切正常,你会做$ _SESSION [用户名] = $ _POST [用户名],然后重定向。