Как я могу заставить браузеры не запрашивать сохранение пароля при неудачных попытках входа? - PullRequest
10 голосов
/ 11 июля 2011

Я пишу приложение на PHP, которое использует формы для получения ввода имени пользователя и пароля.После успешного входа в систему веб-браузеры предложат сохранить имя пользователя и пароль (протестировано с Firefox, Safari и Chrome).

Однако, если пользователь не сможет войти в систему, браузер все равно предложит сохранить пароль (что явно не соответствует предполагаемому поведению).Как я могу указать браузеру, что вход в систему не был успешным, и что не нужно запрашивать данные для сохранения?

Вот HTML-код страницы входа:

<html>
  <head><title>Login</title></head>
<body>
  <style text="css">
    fieldset {
      padding: 10px;
      width: 250px;
      text-align: right;
    }
</style>
<form method="POST" action="checkLogin.php">
  <fieldset>
  <label for="user">Username: <input type="text" id="user" name="username" size="15" /></label><br />
  <label for="pass">Password: <input type="password" id="pass" name="password" size="15" /></label><br />
  <p><input type="submit" value="Login" /></p>
</fieldset>    
</form>
</body>
</html>

CheckLoginСкрипт .php просто проверяет информацию о входе в систему в БД, чтобы убедиться, что она действительна, и печатает «Ошибка при входе в систему», если учетные данные были неверными.

Может кто-нибудь пролить свет на эту тему?Я знаю, что это незначительная проблема, но я не замечаю, что мой браузер предлагает сохранять пароли для неудачных входов на других веб-сайтах.

Заранее спасибо!

Ответы [ 2 ]

6 голосов
/ 11 июля 2011

Я почти уверен, что проблема в том, что checklogin.php - это не та страница, на которой появляется эта форма.Вы должны опубликовать форму для себя и перерисовать форму входа, если она не удалась.

Если вы не перерисовываете форму или публикуете на другой странице, скорее всего, браузер примет, что вход выполнен успешно.Я предполагаю, что большинство браузеров определяют сбой по тому факту, что та же самая форма все еще там.Он должен исчезнуть только в случае успеха.

3 голосов
/ 11 июля 2011

Вероятно, это не самый простой способ сделать это, но я использовал AJAX для отправки формы и размещения страницы, на которую я хочу отправить пользователя, в атрибут действия формы. Тогда кнопка отправки будет иметь тип кнопки вместо типа отправки и будет вызывать функцию Javascript, которая выполняет запрос AJAX при нажатии. Если асинхронный запрос к файлу checklogin.php вернет, что вход в систему прошел успешно, я использую JavaScript для отправки формы, которая просто отправляет пользователя на следующую страницу, но браузер попросит сохранить пароль. Еще одно преимущество этого метода заключается в том, что при отправке неверного пароля страница не должна будет перезагружаться.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...