Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [inne][PHP] Pobieranie plików z serwerów wymagających autoryzacji
kubap007
post
Post #1





Grupa: Zarejestrowani
Postów: 38
Pomógł: 0
Dołączył: 29.05.2007

Ostrzeżenie: (0%)
-----


Witam,

Chciałbym pobrać do mojego programu dane z pliku znajdującego się na serwerze z autoryzacją (oczywiście posiadam login i hasło do pliku). Poradzono mi, aby uzyć programu wget, ale niestety nie działa. Częściowo może to być wina, że nie potrafię go obsługiwać lub nie jest obsługiwany przez mój wirtualny serwer php+mysql (WAMP 2.0). Plik, który chcę ściągnąć mogę albo otworzyć od razu albo mogę czytać po zapisaniu jest to dla mnie bez różnicy. Wiem, że podobne problemy były na forum ale wtedy potrzebowali tylko logów, a w necie nie mogę znaleźć nigdzie rozwiązania bo potrzebna tu jest autoryzacja.

Oto mój kod:
  1. $wget = shell_exec('wget -c -t 1 -o ./wget.txt --http-user=xxx --http-password=xxx url')


lub

  1. $wget = system('wget -c -t 1 -o wget.txt --http-user=xxx --http-password=xxx url')


I parę innych kombinacji i nic nie działa. Będę wdzięczny za pomoc.

Ten post edytował kubap007 5.02.2010, 09:27:42
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 5)
l3l0
post
Post #2





Grupa: Zarejestrowani
Postów: 94
Pomógł: 16
Dołączył: 24.07.2009
Skąd: Gdańsk

Ostrzeżenie: (0%)
-----


  1. $wget = shell_exec('wget -c --http-user=xxx --http-password=xxx url');


Go to the top of the page
+Quote Post
kubap007
post
Post #3





Grupa: Zarejestrowani
Postów: 38
Pomógł: 0
Dołączył: 29.05.2007

Ostrzeżenie: (0%)
-----


Sprawdzałem też nie działa (w kodzi powyżej podanym przeze mnie jest automatycznie dodał się kod url i pokazuje coś czego nie ma).
Go to the top of the page
+Quote Post
l3l0
post
Post #4





Grupa: Zarejestrowani
Postów: 94
Pomógł: 16
Dołączył: 24.07.2009
Skąd: Gdańsk

Ostrzeżenie: (0%)
-----


Mógłbyś też sprobować pobrać ten plik przez CURLa albo file_get_contents tworząc odpowiedni stream_context
np. wykorzystanie file_get_contents:
  1.  
  2. $contextOptions = array(
  3. 'http' => array(
  4. 'header' => 'Authorization: Basic ' . base64_encode('username:passwd')
  5. )
  6. );
  7.  
  8. $context = stream_context_create($contextOptions);
  9. $data = file_get_contents($url, false, $context);


Pozdrawiam
Go to the top of the page
+Quote Post
Pilsener
post
Post #5





Grupa: Zarejestrowani
Postów: 1 590
Pomógł: 185
Dołączył: 19.04.2006
Skąd: Gdańsk

Ostrzeżenie: (0%)
-----


Jak jest autoryzacja to mogą być i inne zabezpieczenia, np. referer, wymagane standardowe nagłówki wysyłane przez przeglądarkę a nawet ciastka. Logicznym wyjściem wydaje się:
- użycie specjalnego dodatku do przeglądarki (zapomniałem nazwy, coś tam live http), który pokaże nagłówki wysyłane i odbierane przez ten serwer
- użycie CURL
Go to the top of the page
+Quote Post
kubap007
post
Post #6





Grupa: Zarejestrowani
Postów: 38
Pomógł: 0
Dołączył: 29.05.2007

Ostrzeżenie: (0%)
-----


Dzięki l3l0 za pomoc, musiałem jeszcze ustawić obsługę większych plików i wszystko śmiga.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 24.08.2025 - 02:37