Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Curl i cookies.
Forum PHP.pl > Forum > PHP
blackroger
Mam problem. Chodzi o pobieranie gotowych cookies z pliku. Plik nazywa sie cookies.txt i jest umieszczony zaraz kolo index.php . Zostały pozmieniane wszystkie katalogi nadrzedne oraz sam plik cookies.txt na chmod 777.
  1. <?php
  2. $cookie_file = 'cookies.txt';
  3.  
  4. $curl = curl_init();
  5. curl_setopt($curl, CURLOPT_URL, "http://www.costam.pl/home=cos");
  6. curl_setopt($curl, CURLOPT_TIMEOUT, 10);
  7. curl_setopt($curl, CURLOPT_REFERER, "http://www.costam.pl/home=cos");
  8. curl_setopt($curl, CURLOPT_FOLLOWLOCATION, true);
  9. curl_setopt($curl, CURLOPT_REFERER, "http://www.costam.pl/home=cos");
  10.  
  11. curl_setopt($curl, CURLOPT_COOKIEFILE, $cookie_file);
  12.  
  13. curl_setopt($curl, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 5.1; pl; rv:1.9.0.3) Gecko/2008092417 Firefox/3.0.3');
  14. $headers = array('Accept-Language: pl,en-us;q=0.7,en;q=0.3',
  15.                  'Accept-Charset: ISO-8859-2,utf-8;q=0.7,*;q=0.7');
  16. curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);
  17. curl_setopt($curl, CURLOPT_ENCODING, 'gzip');
  18. curl_setopt($curl, CURLOPT_ENCODING, 'deflate');
  19. curl_setopt($curl, CURLOPT_ENCODING, '');
  20.  
  21. /*curl_setopt($curl, CURLOPT_COOKIE, "puid=1226405558_35c807c4722a233f585514bbfcb08db5EVv1; stsess=e116c336eec798cc0e39a2b1e7745bebv2; __utma=82371138.3844287304869655000.1226405556.1226405556.1226405556.1; __utmb=82371138.1.10.1226405556; __utmc=82371138; __utmz=82371138.1226405556.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none)");*/
  22.  
  23. curl_exec($curl);
  24. curl_close($curl);
  25. ?>


W momencie jak ustawiam recznie cookies to wszystko ładnie chodzi i jest dobrze (zakomentowany fragment). Problem pojawia sie tylko w momencie zewnetrznego odczytu z pliku.
ayeo
Witam!

Po pierwsze nie ten dział, a po drugie brak znaczników BBcode w treści posta...

Pozdrawiam!
blackroger
Może rzeczywiście nie ten dział ale ciężko to dopasować do innego...
Wracając do tematu...
Przed chwilą spróbowałem jeszcze innego podejścia...
  1. <?php
  2. $cookies = file_get_contents('cookies.txt');
  3.  curl_setopt($curl, CURLOPT_COOKIE, $cookies);
  4. ?>

i również działa... z tego wynika że z jakiś powodów funkcja
  1. <?php
  2. curl_setopt($curl, CURLOPT_COOKIEFILE, 'cookies.txt');
  3. ?>

nie chce wysyłać tego pliku... czy ktoś ma propozycje, dlaczego? Zły format? Złe kodowanie?

---
Przenoszę z OOP na PHP
~mike
nevt
o ile ten plik php i plik cookies.txt są w tym samym katalogu, to spróbuj zamiast:
  1. <?php
  2. curl_setopt($curl, CURLOPT_COOKIEFILE, 'cookies.txt');
  3. ?>

dać:
  1. <?php
  2. curl_setopt($curl, CURLOPT_COOKIEFILE, dirname(__FILE__).'/cookies.txt');
  3. ?>


PS. wymień znaczniki [code] na [php] - kod jest nieczytelny...
blackroger
Zrobiłem tak jak napisałeś:

  1. <?php
  2. $curl = curl_init();
  3. curl_setopt($curl, CURLOPT_URL, &#092;"http://www.cos.com/home=cos\");
  4. curl_setopt($curl, CURLOPT_TIMEOUT, 10);
  5. curl_setopt($curl, CURLOPT_REFERER, &#092;"http://www.cos.com/home=cos\");
  6. curl_setopt($curl, CURLOPT_FOLLOWLOCATION, true);
  7. curl_setopt($curl, CURLOPT_REFERER, &#092;"http://www.cos.com/home=cos\");
  8. curl_setopt($curl, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 5.1; pl; rv:1.9.0.3) Gecko/2008092417 Firefox/3.0.3');
  9. $headers = array('Accept-Language: pl,en-us;q=0.7,en;q=0.3',
  10.                 'Accept-Charset: ISO-8859-2,utf-8;q=0.7,*;q=0.7');
  11. curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);
  12. curl_setopt($curl, CURLOPT_ENCODING, 'gzip');
  13. curl_setopt($curl, CURLOPT_ENCODING, 'deflate');
  14. curl_setopt($curl, CURLOPT_ENCODING, '');
  15.  
  16. curl_setopt($curl, CURLOPT_COOKIEFILE, dirname(__FILE__).'/cookies.txt');
  17.  
  18. curl_exec($curl);
  19. curl_close($curl);
  20.  
  21. ?>



i dalej to samo...jak sprawdzić czy w ogóle jest coś wysyłane? Nie mam dostępu do serwera do którego wysyłam...Może coś jest wysyłane ale w innym formacie i serwer tego nie interpretuje tak jak powinien...Sam już nie wiem..

Zauważyłem jeszcze że gdy próbuje zapisać ciasteczka z serwera do pliku to pojawia się taki błąd :

Warning: curl_setopt(): supplied argument is not a valid cURL handle resource in /home/student/d60145/public_html/cos/index2.php on line 19

  1. <?php
  2. curl_setopt($curl CURLOPT_COOKIEJAR, dirname(__FILE__).'/cookie.txt');
  3. ?>


Co to oznacza?
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.