2016-01-14 4 views
0

Я пытаюсь использовать PHP локон функцию, чтобы войти на HTTPS веб-странице «https://portal.opalonline.co.uk/Home/PortalCore/SignIn/SignIn.aspx»PHP Войти на HTTPS страницу с помощью Curl

, но я исчерпал идеи, как я могу отправить значения в этой конкретной страницы (имя пользователя , пароль) и нажмите «Зарегистрироваться».

$postfields = array('ctl00_MasterContentContentPane_Signin1_userID_txt'=>'[email protected]', 
      'ctl00_MasterContentContentPane_Signin1_password_txt'=>'somepassword123'); 

/* LOG IN TO TalkTalk ACCOUNT */ 
$ch = curl_init(); 
curl_setopt($ch, CURLOPT_URL, "https://portal.opalonline.co.uk/Home/PortalCore/SignIn/SignIn.aspx?"); 
curl_setopt($ch, CURLOPT_HEADER, false); 
// curl_setopt($ch, CURLOPT_TIMEOUT, $timeout); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); 
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); 
// curl_setopt($ch, CURLOPT_COOKIEJAR, COOKIE_FILE); 
// curl_setopt($ch, CURLOPT_COOKIE, COOKIE_FILE); 
curl_setopt($ch, CURLOPT_POSTFIELDS, $postfields); 
curl_setopt($ch, CURLOPT_POST, 1); 
var_dump($ch); 
$string_exec = curl_exec($ch); 
var_dump($string_exec); 

Я даже не могу отобразить страницу с var_dump :(. Идеи/предложения высоко ценится

+0

Давайте держать его в гражданском порядке. Maciej Cygan по достоинству оценил бы комментарий, если вы спуститесь вниз. –

+0

@JeremyStein Спасибо, действительно, я был бы признателен, если бы кто-нибудь дал объяснение, почему он является downvoting –

ответ

3

Во-первых, я не думаю, что вы можете сделать «массив» вещь так, как это сделает PHP/CURL вместо этого создайте многопользовательскую форму, и это не та форма. Предоставьте данные в «name = value & name2 = value2».

Затем убедитесь, что вы также отправляете все скрытые поля в форме. по крайней мере, четыре из них. Один из них установлен HTML для длинного значения, которое нужно извлечь и установить, а также есть некоторый javascript магия, которая устанавливает некоторые из других. Вероятно, вам нужно использовать сетевой инструмент вашего браузера, чтобы отслеживать, что именно отправляет ваш браузер, чтобы он мог идеально имитировать.

На странице входа в систему вы должны выбрать cookies, и вы должны , вероятно, необходимо передать эти файлы cookie при отправке формы входа. Поэтому вам нужно сначала получить (GET) страницу формы входа в систему, чтобы получить файлы cookie, а затем подать регистрационный номер POST.

С учетом этого вы должны быть ближе. Если это не все, что требуется, продолжайте сравнивать запрос браузера с тем, что посылает ваш запрос, и убедитесь, что они как можно более похожи.

0

Откройте веб-сайт в Google Chrome, откройте консоль, чтобы перейти на вкладку сети.

Войдите на сайт. Вы должны увидеть запрос на вкладке сети. Щелкните правой кнопкой мыши по нему, выберите «copy as cURL». Это даст вам командную строку, которая поможет вам понять, что вам нужно.

Смежные вопросы