Вопрос по form-submit, javascript, parsing, php – Как отправить форму на внешний сайт и получить сгенерированный HTML?

5

Я хотел бы сделать скрипт с использованием PHP (вероятно, JS), чтобы отправить данные POST на другую веб-страницу и получить результат обратно.

Например, домен A будет иметь форму с текстовым полем и кнопкой отправки, а домен B будет иметь скрипт, который заполнит текстовое поле и нажмет кнопку отправки и вернет сгенерированную страницу HTML.

Спасибо за ваш ответ. Я уже использовал решение ppsreejith. sczdavos
@sczdavos вы используете какую-либо библиотеку javascript, такую как jquery или прототип? ryacii
Хорошо. Есть ли возможность, как я могу просто опубликовать форму? sczdavos
возможный дубликатScrape a website (javascript website) using php Quentin
Используя JS: вы можете разместить форму на другом сайте, вы НЕ МОЖЕТЕ получить сгенерированный HTML. Вам нужен прокси для отправки формы на стороне сервера. Salman A

Ваш Ответ

3   ответа
1

Та же политика происхождения.

С PHP вы можете делать то, что вы хотите, в том числеPOSTиспользование других серверов. Например использоватьCURL.

Почему отрицательный голос?
-1

Используйте jquery; просто загрузите страницу с помощью вызова $ .ajax (). Если вам нужно, вы можете использовать & quot; jsonp & quot; который работает вокруг ограничений между вызывающими страницами из разных доменов.

Хорошая вещь об использовании javascript в том, что вам не нужны серверные языки.

--- 2018 редактировать ---

Теперь я понимаю, что вы не можете выполнить POST с помощью jsonp (так как он по существу предназначен только для чтения), поэтому это будет работать только в том случае, если веб-сайт принимает форму как GET (то есть параметры в URL). В противном случае лучше всего использовать Curl или аналогичный, как предлагается в других ответах.

6

//set POST variables
$url = 'the website from which you need data through post';
$fields = array(
            //post parameters to be sent to the other website
            'text'=>urlencode($_POST['text']), //the post request you send to this  script from your domain.
        );

//url-ify the data for the POST
foreach($fields as $key=>$value) { $fields_string .= $key.'='.$value.'&'; }
rtrim($fields_string,'&');

//open connection
$ch = curl_init();

//set the url, number of POST vars, POST data
curl_setopt($ch,CURLOPT_URL,$url);
curl_setopt($ch,CURLOPT_POST,count($fields));
curl_setopt($ch,CURLOPT_POSTFIELDS,$fields_string);

//execute post
$result = curl_exec($ch);

//close connection
curl_close($ch);

Теперь $ result будет содержать текст, полученный с другого сайта.

Когда я ввожу это, я получаю ошибку: Примечание: неопределенный индекс: привет в C: \ xampp \ htdocs \ proxy \ test.php в строке 6 Примечание: неопределенная переменная: fields_string в C: \ xampp \ htdocs \ proxy \ test.php на линии 10 Помощь?

Похожие вопросы