Оставьте имя пользователя в поле имени пользователя, если неверный пароль - PullRequest
2 голосов
/ 12 апреля 2010

Как многие веб-сайты, имеющие логины, сохраняют имя пользователя в поле имени пользователя, если пароль введен неправильно. Действие формы (оно находится на index.php) - это другой файл php, который, если пароль неверный, использует Header () для возврата к индексу и передает ему ошибку с помощью GET. Я мог бы использовать GET, чтобы передать имя пользователя обратно в форму, но это кажется грязным, и я заметил, что сайты, такие как форумы SMF, имеют имя пользователя, которое остается в поле имени пользователя без грязного URL.

Ответы [ 4 ]

3 голосов
/ 12 апреля 2010

Мне обычно легче обрабатывать данные формы в том же сценарии, где форма отображается, и перенаправлять куда-то еще, только когда я собрал правильный ввод.

2 голосов
/ 12 апреля 2010

Simples!

<form action="loginpage.php" method="post">
  <fieldset>
    ...
    <input type="text" name="username" value="<?php if (isset($_POST['username'])) echo $_POST['username']; ?>" />
    ...
  </fieldset>
</form>

Остальная часть формы опущена, чтобы подчеркнуть решение.

1 голос
/ 12 апреля 2010

Вы можете использовать сеансы.

Например, если сообщение является неправильным (это будет указано в файле, обрабатывающем ваш запрос на публикацию):

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

Тогда на вашей странице входа в систему:

<input type="text" name="username" value="<?php echo @$_SESSION['username']; ?>" />

Убедитесь, что вы начали сеанс, хотя: http://php.net/session_start

0 голосов
/ 12 апреля 2010

методом GET

header("Location: loginpage.php?username=".$_REQUEST['username']);

и на странице формы вы можете получить к нему доступ:

<input type="text" name="username" value=<?php echo $_GET['username']?>
...