cURL PHP: подключение к системе выставления счетов - PullRequest
0 голосов
/ 02 апреля 2010

Я пытаюсь использовать cURL для подключения к такой странице: https://clients.mindbodyonline.com/asp/home.asp?studioid=851 со следующим кодом;

<?php

$curl_handle=curl_init();
curl_setopt($curl_handle,CURLOPT_URL,'https://clients.mindbodyonline.com/asp/home.asp?studioid=851');
//curl_setopt($curl_handle,CURLOPT_CONNECTTIMEOUT,2);
curl_setopt($curl_handle,CURLOPT_RETURNTRANSFER,1);
curl_setopt($curl_handle,CURLOPT_HTTPAUTH, CURLAUTH_ANY);

curl_setopt($curl_handle,CURLOPT_COOKIEJAR, '/tmp/cookies.txt');
curl_setopt($curl_handle,CURLOPT_COOKIEFILE, '/tmp/cookies.txt');

//curl_setopt($curl_handle,CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($curl_handle,CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($curl_handle, CURLOPT_FOLLOWLOCATION, 1);

//curl_setopt($curl_handle,CURLOPT_HEADER, 1);
//curl_setopt($curl_handle,CURLOPT_RETURNTRANSFER, 1);
//curl_setopt ($curl_handle,CURLOPT_POST, 1);

$buffer = curl_exec($curl_handle);
curl_close($curl_handle);

if (empty($buffer))
{
    print "Sorry, The booking system appears to be unavailable at this time.<p>";
}
else
{
    print $buffer;
}
?>

Я изменил настройки, и я получил только три ответа;

  1. Ничего не загружено и сообщение об ошибке называется
  2. Перенаправление в / asp / home ... локально
  3. Возвращает '1' и все

Спасибо за ваше время!

Ответы [ 2 ]

1 голос
/ 02 апреля 2010

1. Ничего не загружено : ваш код работает нормально, но они игнорируют вас. Возможно, это какая-то антиударная функциональность с их стороны. Вы всегда можете изменить код на некоторое время и повторить попытку несколько раз.

2. Перенаправление на / asp / home ... локально : ваш код работает, но возвращает javascript со своей страницы, которая выполняется вашим браузером, и перенаправляет вас на страницу, которая не существует. Чтобы увидеть этот код без его запуска, выполните:

print htmlspecialchars($buffer);

3. Возвращает «1» и это все : это происходит, если вы не используете

curl_setopt($client, CURLOPT_RETURNTRANSFER, true);

Раскомментируйте.

К сожалению, даже тогда вы не сможете прочитать этот конкретный сайт как есть, потому что он нарисован на JavaScript, который cURL не может запустить.

0 голосов
/ 02 апреля 2010

Возможно, используемые вами файлы cookie недействительны (т. Е. Срок сеанса истек). Если вы загрузите эту страницу без файлов cookie, вы получите форму POST. Возможно, вам следует сначала отправить эти данные POST, получить файлы cookie, а затем использовать эти файлы cookie до конца сеанса.

Кроме того, вам нужно установить CURLOPT_RETURNTRANSFER на 1, чтобы использовать $buffer подобным образом. Если нет, cURL выведет полученную страницу, что, вероятно, объясняет # 2.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...