Как автоматически отправить форму с помощью PHP - PullRequest
2 голосов
/ 22 января 2011

В настоящее время я занимаюсь разработкой веб-сайта, на котором я сталкиваюсь со следующей проблемой:

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

  1. Когда в браузере Mozilla Firefox включена надстройка «Без сценария», сценарий автоматической отправки формы не работает. В результате страница входа в систему отображается пользователю с заполненным идентификатором пользователя и паролем.

  2. Кроме того, иногда пользователь может видеть страницу входа в систему, когда мы автоматически отправляем страницу входа.

Существуют ли возможные способы преодоления этих двух проблем?

Ответы [ 2 ]

2 голосов
/ 22 января 2011

Перенаправление браузера пользователя, как вы делаете сейчас, на самом деле является единственно возможной клиентской стороной с Javascript, который всегда может быть заблокирован. Вы можете сохранить user_id и пароль в переменной сеанса и получить доступ к этим данным на странице входа в систему, которая обрабатывает фактическую аутентификацию. Такое действие устранит необходимость автоматической отправки форм.

Но если вы действительно хотите использовать публикацию формы, вы можете эмулировать публикацию формы с помощью PHP, используя cURL, но это немного сложнее.

cURL на php.net

Отправка данных в форме сообщений с помощью PHP и cURL

На моем сайте, если пользователь не вошел в систему, я запускаю метод «tryCookieAuthentication» при каждой загрузке страницы, который проверяет, установлен ли файл cookie «запомнить меня». Если он установлен и все кажется законным, я продолжаю аутентифицировать пользователя и входить в него. Таким образом, пользователю даже не нужно прикасаться к странице входа. Я не знаю, пытаетесь ли вы это сделать, но это может дать вам представление.

1 голос
/ 22 января 2011

Если вы уже знаете user_id и пароль, когда пользователь запрашивает страницу входа, вы можете просто отправить заголовок местоположения

...