Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] curl referer problem?
Forum PHP.pl > Forum > Przedszkole
b4x
Witam.
  1. <?php
  2. $ch = curl_init('http://mojastrona.pl/www/get.php');
  3.  
  4.       $headers = array(
  5.             'Host: www.mojastrona.pl',
  6.                         'User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; pl; rv:1.9.0.7) Gecko/2009021910 Firefox/3.0.7',
  7.                         'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
  8.                         'Accept-Language: pl,en-us;q=0.7,en;q=0.3',
  9.                         'Accept-Encoding: gzip,deflate',                  
  10.                         'Accept-Charset: ISO-8859-2,utf-8;q=0.7,*;q=0.7',
  11.                         'Keep-Alive: 300',
  12.                         'Connection: keep-alive',
  13.                         'Referer: <a href=\"http://www.mojastrona.pl/'&#092;" target=\"_blank\">http://www.mojastrona.pl/'</a>,
  14.                         'Cookie: PHPSESSID=b38e97fe38f0a30f9a68311331ffbe3b',
  15.                         );
  16.                        
  17. curl_setopt($ch, CURLOPT_HTTPHEADER, $headers );
  18. curl_setopt($ch, CURLOPT_REFERER, ' <a href=\"http://www.mojastrona.pl/');&#092;" target=\"_blank\">http://www.mojastrona.pl/');</a>
  19. curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
  20.  
  21. $html = curl_exec($ch);
  22. echo $html;
  23. ?>


Z MojaStronaX.pl chce pobrać pewne dane z MojaStrona.pl - gdzie jest sprawdzane Referer - lecz MojaStrona.pl - nie wykrywa go. Ma ktoś jakies pomysły?smile.gif

Jeśli wyśle przez Live HTTP Headers takie headery to jest ok ale przez curla nie :<
nospor
no ale referer to ma byc adres www a nie link...

edit down:
hehe, no to sorki winksmiley.jpg
b4x
Wiem że ma być adres - wasz parser tak mi zamienił smile.gif
zegarek84
Kod
'Cookie: PHPSESSID=b38e97fe38f0a30f9a68311331ffbe3b',

czy to nie przestażała sesja?? ;p

pozatym może cURL u Ciebie nie wie jak rozkodować gzip?? - bezpieczniej tą część zadeklarować:
Kod
// gzip
curl_setopt($ch, CURLOPT_ENCODING, 'gzip');
// deflate
curl_setopt($ch, CURLOPT_ENCODING, 'deflate');
// gzip, deflate
curl_setopt($ch, CURLOPT_ENCODING, '');


no i chyba jeśli do danej części nagłówków jest też funkcja to też bym jej urzył a ręcznie dopisał to czego nie ma, np:
Kod
curl_setopt($ch, CURLOPT_USERAGENT, 'Twój user agent');
curl_setopt($ch, CURLOPT_REFERER, 'jakiś referer');


poza tym dobrze by było przechwycić błędy z cURL'a:
Kod
if(curl_errno($ch)){echo 'Błąd #'.curl_errno($ch).': '.curl_error($ch);}

wtedy wiesz czy są błędy w połączeniu i czego szukać, co jeszcze w cURL'u dopisać, np. może trzeba dopisać - ale to gdybanie i nie dopisuj jeśli nie znasz błędu:
Kod
curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_ANY);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);



[EDIT]
a i czasem są odświeżane info w ciasteczkach to i do tego wolałbym użyć:
Kod
curl_setopt($ch, CURLOPT_COOKIEFILE, dirname(__FILE__) . '/cookies.txt');
curl_setopt($ch, CURLOPT_COOKIEJAR, dirname(__FILE__) . '/cookies.txt');

zamiast "ręcznie" wysyłać zmienne cookie
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.