Удаленный вход из неназванных полей с помощью Guzzle PHP - PullRequest
0 голосов
/ 26 мая 2019

Существует определенный сайт, к которому я хотел бы подключиться удаленно через Guzzle. Проблема, у которой поля имени пользователя и пароля без имени.

Мой вопрос:

  1. Могу ли я использовать метод POST, не зная имен полей?
  2. Могу ли я вместо этого использовать имя класса?

Мой код:

login.php

<?php
require("master/guzzle/vendor/autoload.php");

$username = "abc";
$password = "123456";

$client = new \GuzzleHttp\Client();

$response = $client->post('https://www.exmaple.com/login', [
    'body' => [
        'username' => $username,
        'password' => $password,
        'action' => 'login'
    ],
    'cookies' => true
]
);

echo $response;
?>

example.com / Логин

<form>
    <div class="login-name">
        <div data-nep="Label" class="name-font default neptune_block_15yk4 neptune_LABEL-STANDARD_1h3i4">Username
            <div class="neptune_fade-after_15yk4"></div>
        </div>
        <div data-nep="TextBox">
            <input type="text" placeholder="" value="" class="neptune_default_1jbvk" style="height:30px">
            </div>
        </div>
        <div class="login-name">
            <div data-nep="Label" class="name-font default neptune_block_15yk4 neptune_LABEL-STANDARD_1h3i4">Password
                <div class="neptune_fade-after_15yk4"></div>
            </div>
            <div data-nep="TextBox">
                <input type="password" placeholder="" value="" class="neptune_default_1jbvk" style="height:30px">
                </div>
            </div>
        </form>

1 Ответ

0 голосов
/ 26 мая 2019

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

. С помощью Firefox или Chrome нажмите F12, чтобы отобразить задачи веб-разработчика, перейдите на панель «Сеть» и выберите XHR, чтобы отфильтровать запрос AJAX.

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

Sample ScreenShot

$response = $client->request('POST', 'https://api.moodys.com/rest/mobile/oauth/token?client=0', [
    'form_params' => [
        'username' => 'test@gmail.com',
        'grant_type' => 'password',
        'password' => 'testpassword',
    ]
])
...