ostatnio postanowiłem napisać mały skrypt pokazujący przeprowadzone rozmowy za pomocą operatora Betamx (konkretnie - Voipdiscount). Normalnie mozna się tam zalogować poprzez stronę WWW gdzie hasło i użytkownik po prostym zakodowaniu używane są do załadowania poprzez iframe strony użytkownika ze wszystkimi niezbędnymi operacjami......
Chciałem zrobić w php pobieranie listy rozmów dla logującego się użytkownika.....Nazwa użytkownika i hasło mam już przekodowane ale w jaki sposób sciągnąc zawartość strony (wiem że wysyła ona między innymi cookies dotyczące użytkownika i sesji - problem w tym jak z poziomu php te cookies odebrać i zapisać a potem użyć.....). Problem wydaje się skomplikowany a rozwiązanie może jest banalne ?
Pozdrawiam
Piotr (walko)
to co znalazlem i próbowałem użyć:
adres strony ładowanej do iframe w trakcie logowania poprzez stronę operatora
<?php $url = "https://myaccount.voipdiscount.com/clx/index.php?part=plogin&username=tu_przekodowana_nazwa_usera&password=tu_przekodowane_haslo"; ?>
a poniżej funkcja do pobierania strony:
<?php function open_https_url($url,$refer = "",$usecookie = false) { if ($usecookie) { return "Can't write to $usecookie cookie file, change file permission to 777 or remove read only for windows."; } } else { $usecookie = "cookie.txt"; return "Can't write to $usecookie cookie file, change file permission to 777 or remove read only for windows."; } } } $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);// allow redirects curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2); curl_setopt($ch, CURLOPT_HEADER, 1); curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)"); if ($usecookie) { curl_setopt($ch, CURLOPT_COOKIEJAR, $usecookie); curl_setopt($ch, CURLOPT_COOKIEFILE, $usecookie); } if ($refer != "") { curl_setopt($ch, CURLOPT_REFERER, $refer ); } curl_setopt($ch, CURLOPT_RETURNTRANSFER,1); $result =curl_exec ($ch); curl_close ($ch); return $result; } ?>
A tutaj wynik uruchomienia (ciągle zmienia się PHPSESSID i nie może go ustawić - czyli zapisać gdzieś - plik cookies.txt pozostaje pusty)
HTTP/1.0 200 Connection established HTTP/1.1 200 OK Date: Thu, 09 Oct 2008 07:53:05 GMT Server: Apache/2.2.8 (Unix) mod_ssl/2.2.8 OpenSSL/0.9.8g Expires: Thu, 19 Nov 1981 08:52:00 GMT Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0 Pragma: no-cache Set-Cookie: PHPSESSID=hriqfkv550fghm6jcsgfihtip3; path=/; secure; HttpOnly Transfer-Encoding: chunked Content-Type: text/html" title="Zobacz w manualu PHP" target="_manual