Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: pobieranie danych raz jeszcze
Forum PHP.pl > Forum > PHP
ennics
Wiem że był już ten temat, ale metoda
  1. <?php
  2.  
  3. $fp = fopen($url,&#092;"r\");
  4. while(!feof($fp)){
  5.  
  6. $linia=fgets($fp,128);
  7. }
  8.  
  9.  
  10. ?>

i jej wariacje nie działa.

Chodzi o pobranie danych ze strony działającej na platformie java.
Mogę te dane wyświetlać poprzez metodę GET, np. wklejając URL do paska adresu:

"http://www.itd.crm/CRM/c/RO_ORDER_CAPTURE.RO_CAPTURE.GBL?Page=RO_FORM&Action=U&CAPTURE_ID=1234567"

natomiast nie mogę pobrać tych samych danych przez skrypt php (np. powyższą metodą).
Nie bardzo wiem z której storny ugryźć ten temat...

help me smile.gif
intol
Może fopen ma wyłączone na serwerze otwieranie plików spoza niego?
bregovic
Nie możesz użyć metod f* - bo to metody do pracy nad plikami - a ty chcesz ściągnąć nie tyle plik co plik który zostanie wygenerowany po podaniu mu zmiennych. Użyj CURL.
ennics
Dzięki za podpowiedź, zrobiłem tak:

  1. <?php
  2.  
  3.    $url = &#092;"http://www.crm.net\";
  4.    $params = &#092;"userid=schabluk&pwd=mypass\";
  5.    $user_agent = &#092;"Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)\";
  6.  
  7.    $ch = curl_init();
  8.    curl_setopt($ch, CURLOPT_POST,1);
  9.    curl_setopt($ch, CURLOPT_POSTFIELDS,$params);
  10.    curl_setopt($ch, CURLOPT_URL,$url);
  11.    curl_setopt($ch, CURLOPT_SSL_VERIFYHOST,  2);
  12.    curl_setopt($ch, CURLOPT_USERAGENT, $user_agent);
  13.    curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
  14.    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); 
  15.  
  16.    $result=curl_exec ($ch);
  17.    curl_close ($ch);
  18.  
  19.    echo(&#092;"Results: <br>\".$result);
  20. ?>


wszystko jest ok, wyświetla się stona ale... z błędem. Otrzymuje taki komunikat:

"You must have cookies enabled in order to sign in to your CRM application"

Cookies mam oczywiście aktywne,
metoda ta nie działała również na innej aplikacji wymagającej uwierzytelniania.
Czy jest wogóle możliowść przsyłania danych uwierzytelniających metodą GET ?

Pozdr!
bregovic
To zależy od typu uwierzytelniania aplikacji do której próbujesz się zalogować... Jeśli wiesz jak skonstruowane jest logowanie na tamtej stronie mógłbyś spróbować zrobić to jakoś tak żeby się połączyć curl'em, zalogować i pójść dalej do strony której potrzebujesz. Zresztą zobacz ten komentarz:
Cytat(http://php.net/curl)
If you want to Curl to follow redirects and you would also like Curl to echo back any cookies that are set in the process, use this:

curl_setopt($ch, CURLOPT_COOKIEJAR, '-');

'-' means stdout

-dw

I jeszcze to:
Cytat(http://php.net/curl-setopt)
CURLOPT_COOKIE   
The contents of the "Set-Cookie: " header to be used in the HTTP request.   
CURLOPT_COOKIEFILE
The name of the file containing the cookie data. The cookie file can be in Netscape format, or just plain HTTP-style headers dumped into a file.   
CURLOPT_COOKIEJAR
The name of a file to save all internal cookies to when the connection closes.
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.