Цель состоит в том, чтобы заполнить form[id=thisAwesomeRemoteForm][action=#]
на удаленном веб-сайте. Существует только одно поле (input[name=awesomeField]
) для заполнения, а затем форма должна быть отправлена. В качестве окончательного требования пользователю необходимо перенаправить с моего веб-сайта на этот удаленный веб-сайт, как если бы он отправил форму на удаленном веб-сайте.Как использовать Goutte для отправки формы и получения окончательного URI?
Короче говоря, мне нужен пользователь, чтобы иметь возможность щелкнуть мою ссылку, заставить PHP выполнить эту работу и перенаправить на этот удаленный веб-сайт, как если бы он заполнил и отправил форму на удаленном веб-сайте. Я не должен заставлять пользователя заполнять удаленную форму самостоятельно.
код до сих пор:
use Goutte\Client;
// ...
public function gotoAction($data)
{
$client = new Client();
$crawler = $client->request('GET', self::MY_URL);
$form = $crawler->filter('form[id=thisAwesomeRemoteForm]')->form();
$form->setValues(array('awesomeField' => $data));
$crawler = $client->submit($form);
return $this->redirect($form->getUri());
}
До сих пор, я перенаправлены на самый первый URL, где form
это и не там, где form
должно привести. Однако поле заполнено нужными данными.
Является ли мой код правильным для достижения моей цели (и, следовательно, это удаленный веб-сайт, который может использовать JavaScript для отправки формы или что-то еще), или мне не хватает чего-то достаточно очевидного?
Где эта форма перенаправлять? Вы контролируете это? Является ли запрос постоянным между запросом 'Goutte' и перенаправлением. Отображает ли перенаправление пустую форму или форма уже отправлена? –
Привет @ A.L! Нет. Я не могу контролировать форму на удаленном веб-сайте. Форма приводит к другой странице на удаленном сервере. Что вы подразумеваете под «постоянным запросом»? Я не думаю, что форма представлена. – D4V1D
* Постоянный запрос * Я имел в виду, что поскольку Goutte и ваш пользователь являются двумя разными посетителями с точки зрения удаленного сервера, я не знаю, как вы можете получить результат представленной формы и отобразить ее пользователю. –