cURL PHP: Faturalama Sistemi'ne bağlanması

2 Cevap php

Ben böyle bir sayfaya bağlanmak için cURL kullanmaya çalışıyorum: https://clients.mindbodyonline.com/asp/home.asp?studioid=851 Aşağıdaki kod ile;

<?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;
}
?>

Ben olan olsun ayarları ve sadece üç yanıtlarını oynuyordu ettik;

  1. Hiçbir şey yüklenir ve hata mesajı denir
  2. Için / asp / home ... yerel bir yönlendirme
  3. İade '1 've hepsi bu

Zaman ayırdığınız için teşekkürler!

2 Cevap

1. Nothing is loaded: Sizin kod çalışıyor, ancak onlar seni görmezden geliyorlar. Muhtemelen onların ucunda bazı anti-çekiç işlevselliği. Her zaman bir süre için uyku için kodu değiştirmek ve birkaç kez yeniden deneyebilirsiniz.

2. A redirect to /asp/home... locally: Sizin kod çalışıyor, ancak tarayıcınız tarafından yürütülen ve var olmayan bir sayfaya yönlendirir sırt kendi sayfasında javascript döndürür. Bu do çalıştırmadan bu kodu görmek için:

print htmlspecialchars($buffer);

3. Returns '1' and that's all: kullanmak istemiyorsanız böyle olur

curl_setopt($client, CURLOPT_RETURNTRANSFER, true);

Bunu yorumsuz.

Bu cURL koşamam javascript tarafından çizilmiş çünkü ne yazık ki o zaman bile alışkanlık, olduğu gibi bu özel siteyi okumak mümkün olacak.

Perhaps the cookies you are using are invalid (ie, the session has expired). If you load that page without cookies, you get a POST form. Perhaps you should send that POST data first, get the cookies and then use those cookies for the rest of the session.

Ayrıca, $buffer böyle kullanmak için CURLOPT_RETURNTRANSFER 1 ayarlamanız gerekir. Eğer değilse, muhtemelen cURL irade çıktı o gets sayfa, 2. açıklıyor.