Stworzyłem skrypt, który loguje się na stronę, następnie pobiera odtwarzacz z podstrony.
Problem polega na tym, że na localhost wszystko śmiga jak należy, natomiast po wrzuceniu plików na serwer niestety player wyrzuca błąd, że nie może nawiązać połączenia. Może coś pominąłem? Jedyną różnicą jaką dostrzegam jest inna zawartość ciasteczka, tj. brak znaków nowej linii w całym ciasteczku, które znajduje się na serwerze. Czym to jest spowodowane?
Klasa, która nawiązuje połączenie i pobiera potrzebne zmienne:
class openTV { public $channel; function __construct($channel) { $this -> channel = $channel; } function openChannel() { // dane konta $login_email = 'mail@gmail.com'; $login_pass = 'haslo'; // utworzenie ciasteczka // nawiązanie połączenia oraz logowanie $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, 'http://strona/user/login'); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_HEADER, 0); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); curl_setopt($ch, CURLOPT_COOKIEJAR, 'cookie.txt'); curl_setopt($ch, CURLOPT_COOKIEFILE, 'cookie.txt'); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.3) Gecko/20070309 Firefox/2.0.0.3"); curl_setopt($ch, CURLOPT_REFERER, "http://strona/user/login"); $page = curl_exec($ch); // przekierowanie na wybrany kanał curl_setopt($ch, CURLOPT_URL, $this->channel); curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.3) Gecko/20070309 Firefox/2.0.0.3"); curl_setopt($ch, CURLOPT_REFERER, $this->channel); curl_setopt($ch, CURLOPT_COOKIEFILE, 'cookie.txt'); curl_setopt($ch, CURLOPT_POST, 0); $info = curl_getinfo ($ch); $page = curl_exec($ch); if (curl_errno($ch)) { } // wycięcie jedynie playera oraz tokena dla oglądanej tv $return['player'] = $matches[0]; //$return['player'] = $page; $return['channel'] = $this->channel; return $return; } }
reszta jest nieistotna, bo jedynie opakowuje wyniki w divy i nadaje style css.