Witam,

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
  1. <?php
  2. $url = "https://myaccount.voipdiscount.com/clx/index.php?part=plogin&username=tu_przekodowana_nazwa_usera&password=tu_przekodowane_haslo";
  3. ?>


a poniżej funkcja do pobierania strony:
  1. <?php
  2. function open_https_url($url,$refer = "",$usecookie = false) {
  3.  
  4.    if ($usecookie) {
  5.        
  6.        if (file_exists($usecookie)) {
  7.        
  8.            if (!is_writable($usecookie)) {
  9.                
  10.                return "Can't write to $usecookie cookie file, change file permission to 777 or remove read only for windows.";
  11.            }
  12.        } else {
  13.            $usecookie = "cookie.txt";
  14.            if (!is_writable($usecookie)) {
  15.                
  16.                return "Can't write to $usecookie cookie file, change file permission to 777 or remove read only for windows.";
  17.            }
  18.        }
  19.    
  20.    }
  21.  
  22.    $ch = curl_init();
  23.    
  24.    curl_setopt($ch, CURLOPT_URL, $url);
  25.    
  26.    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);// allow redirects
  27.    
  28.    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
  29.    
  30.    curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2);
  31.    
  32.    curl_setopt($ch, CURLOPT_HEADER, 1);
  33.    
  34.    curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)");
  35.    
  36.    if ($usecookie) {
  37.        curl_setopt($ch, CURLOPT_COOKIEJAR, $usecookie);
  38.        
  39.        curl_setopt($ch, CURLOPT_COOKIEFILE, $usecookie);    
  40.    }
  41.    
  42.    if ($refer != "") {
  43.    
  44.        curl_setopt($ch, CURLOPT_REFERER, $refer );
  45.        
  46.    }
  47.    
  48.    curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
  49.    
  50.   $result =curl_exec ($ch);
  51.    
  52.   curl_close ($ch);
  53.    
  54.   return $result;
  55. }
  56.  
  57. echo  open_https_url($url,"",true);
  58. ?>



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