|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
06.07.2011, 16:14 | #1 |
Форумчанин
Регистрация: 23.10.2008
Сообщений: 230
|
Отправка данных методом POST
Как передать данные методом POST другому серверу, а потом перенаправить пользователя на ту страницу на которую были переданы данные?
Данные я могу передать с помощью сокетов, а вот перенаправление не получается. |
06.07.2011, 17:07 | #2 |
Форумчанин
Регистрация: 03.05.2011
Сообщений: 158
|
Это невозможно. Вы не можете передать пост-данные куда-то, а потом направить пользователя, что бы он получил ответ уже оттуда минуя вас.
(Это если я правильно понял, что вы хотите сделать) Можно сделать что-то подобное тремя путями: Запомнить целиком и полностью запрос пользователя, имитировать те же самые хэдэры своим скриптом, добавить туда пост-данные, отослать на удалённый сервер, получить ответ и передать его юзеру. Ответить пользователю заполненной формой, которая автосабмитится на удалённый сервер. В таком случае удалённый сервер получает запрос от пользователя с заполненными вами в инпутах (хидден или просто дисплэй-нан) и отвечает пользователю напрямую уже без вашего участия. Перехватить пакет к удалённому серверу, изменить его добавить туда пост-поля, подменить свой ай-пи на ай-пи пользователя (в пакете), послать его к удалённому серверу, перехватить ответ (по-мак-у скорее всего вы ответ и получите) и отослать его пользователю. Но это вы должны контролировать линию пользователя. (как минимум быть прокси, максимум - стоять на его линии связи и вылавливать ВСЕ пакеты). Ну или просто прокси-решение без подмены ай-пи, или просто с фильтрацией пакетов. Если у вас есть доступ на удалённый сервер, конечно же, всё становится на порядок проще: Отсылаете отдельный запрос с вашими пост-полями, готовите там страничку/вбиваете их в БД/в мемкэш/ещёкуданибудь, получаете на запрос в качестве ответа некий ай-ди (из БД, мэмкэша, имя файла/ещёкакойнибудь) по которому вы можете однозначно идентифицировать данные пользователя которые вы туда отослали, и скармливате пользователю простой редирект (лучше всего 301 в хэдэрах, но можно и туподжаваскрипт или мета-НТТР-эквивалент) с упоминанием этого ай-ди. На втором сервере, ориентируясь на полученный от пользователя ай-ди, выдаёте ему то, что ему причитается. Последний раз редактировалось graymaster; 06.07.2011 в 17:15. |
07.06.2012, 15:32 | #3 |
Форумчанин
Регистрация: 23.10.2008
Сообщений: 230
|
Снова возник данный вопрос
Если у нас есть форма, в которой пользователь вводит логин, пароль, email, то мы можем указать каким способом POST или GET отправить эти данные на другую страницу. Если указан метод POST, то мы вводим данные, нажимаем кнопку формы и методом POST отправляем их, одновременно с этим переходя на новую страницу. можно также сделать с помощью Ajax, то есть передать данные на новую страницу и одновременно перейти на неё? |
07.06.2012, 16:10 | #4 | |
Старожил
Регистрация: 31.05.2010
Сообщений: 3,301
|
Цитата:
Сделать это можно и через ... AJAX - просто хочется понять смысл всего этого. Форму можно отправить и без "нажимаем на кнопку" - если что... |
|
07.06.2012, 16:19 | #5 |
Форумчанин
Регистрация: 23.10.2008
Сообщений: 230
|
Как? Есть несколько форм и просто input'ов без формы. Надо отправить эти данные на другую страницу методом POST и одновременно перейти на неё. Кроме того некоторые данные формируются скриптом. |
07.06.2012, 16:48 | #6 |
Форумчанин
Регистрация: 12.08.2011
Сообщений: 124
|
Глупо держать инпуты без формы, имхо.. если всем импутам дать тип хидден формы не будет видно, можно дать ей ид и использовать js
Код:
|
07.06.2012, 16:49 | #7 |
Форумчанин
Регистрация: 12.08.2011
Сообщений: 124
|
Ну на крайняк можно из импутов взять значения, сформировать новую полноценную форму и отправить ее....
|
07.06.2012, 16:52 | #8 |
Старожил
Регистрация: 31.05.2010
Сообщений: 3,301
|
Извращенным способом - потому искренне не советую.
В обработчике ловите данные из $_POST и помещаете их в сессию. $.ajax имеет опцию succes (функция, выполняется после успешного запроса), в которой прописываете перенаправление на страницу-обработчик. После перенаправления извлекаете из сессии переданные ранее данные - и работает с ними. Повторюсь - это откровенный изврат, правильнее будет пересмотреть логику и реализовать это возможностями web-форм. |
07.06.2012, 16:56 | #9 |
Форумчанин
Регистрация: 12.08.2011
Сообщений: 124
|
А если реализовать так: изначальная страница: посылаем пост на другой сервер, там он обрабатывается и пересылается обратно, после получения юзер перенаправляется на ту страницу куда отправляли пост-запрос, ну и с юзером можно отправить еще один пост-запрос, если это будет необходимо, хотя смысла в этом не вижу) Ну просто не понимаю ситуацию)
|
07.06.2012, 16:58 | #10 |
Форумчанин
Регистрация: 12.08.2011
Сообщений: 124
|
Проще: соберите все инпуты в одну форму (можно через js) и спокойно сабмитните ее с action="ваша удаленная страница"
Или еще вариант, если есть форма, которую юзер не трогает а ее надо отправить, дайте ей ид, и отправте через js Ну это же проще простого. |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Отправка данных методом post | ANDEREY | Работа с сетью в Delphi | 4 | 11.08.2011 10:09 |
Передача данных методом POST | batusai | PHP | 2 | 30.10.2010 03:04 |
Отправка POST | Alex Cones | Работа с сетью в Delphi | 3 | 18.05.2010 11:07 |
отправка POST | CraZZy RabbIt | Работа с сетью в Delphi | 8 | 24.04.2009 16:48 |
Проблема с передачей данных методом POST | Aiden | Работа с сетью в Delphi | 0 | 21.09.2008 21:11 |