Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Dziwne zachowanie Curl i file_get_contents
Forum PHP.pl > Forum > Przedszkole
Qbexus
Skrypt na serwerze A ma pobierać dane ze skryptu z serwera B przez Curl lub file_get_contents niestey nie pobiera nic, ani nagłówka ani danych, oczywiście serwer B noramlnie zwraca strone z danymi. Żeby było ciekawiej serwer A nie widzi żadnej ze stron na serwerze B ale już na innych serwerach tak np. google, onet czy ten sam skrypt z danymi, który jest na serwerze B tylko umiejscowiony gdzie indziej. Tu można by powiedzieć, że cos jest nie tak z serwerem B ale ten sam skrypt, który jest na serwerze A bez problemu widzi dane z serwera B pod warunkiem że jest umiejscowiony gdzie indziej (na innym serwerze). Czyli imho "gryzą" się te 2 serwery pytanie na jakiej płaszczyźnie.
grzeee
może to jest mój wczorajszy problem
link
Wysyłasz w twoich metodach nagłówków przy zapytaniu ? Spróbuj ustawić user-agent na cokolwiek
Qbexus
To nie to.
greycoffey
Nie jesteśmy jansowidzami - z twojego opisu nic nie wywnioskujemy. Próbuj wszystkiego.
Qbexus
@greycoffey już ktos mógł się z takim przypadkiem spotkać no i to "wszystko" trzeba jakoś ograniczyć.
greycoffey
Sprawdź logi apache, sprawdź czy serwer A poprawnie rozpoznaje domenę serwera B, sprawdź czy link jest poprawny.
redeemer
curl_error nie zwraca nic? Spróbój też ustawić flagę CURLOPT_FOLLOWLOCATION.
Qbexus
curl_error nic nie zwraca CURLOPT_FOLLOWLOCATION działa przy przekierowaniu ale wtedy widać przynajmniej nagłówek, link jest poprawny, faktycznie zostaje przeczesanie logów.
wNogachSpisz
Użyj PEAR:HTTP_Request2.
Ustawiasz debug na true i wtedy wyświetlają się wysłane i odebrane dane (tzn jeśli body jest zbyt duże to tylko nagłowki).
Bez tego cięzko cokolwiek debugować.
greycoffey
Odpal `nslookup serwerB.tld`. Poszukaj też w logach na serwerze B, czy żądanie doszło.
mihauu
  1. nslookup aureus-miedzychod.pl
  2. ;; connection timed out; no servers could be reached


W logach apache nic nie ma, połączenie do doszło.

Nie działa żadna domena na tym serwerze.

P.S. Wątek rozpoczął kolega, ale teraz przyszło kolej na moją zmianę w pracy smile.gif
greycoffey
Poszperajcie w waszym serwerze DNS, lub na serwerze A w pliku /etc/resolv.conf
strife
Przenoszę na Przedszkole
Qbexus
@strife dzięki za przenosiniy ale czy to znaczy, że jako wychowawca przedszkolaków znasz panaceum na nasz problem bo nie został jeszcze rozwiązany.
redeemer
Wszystko do rozwiązania problemu masz już podane. Serwer B nie resolvuje nazw - brakuje nameservera, albo nameserver jest źle skonfigurowany. Zawsze możesz też dopisać IP i nazwę hosta na sztywno do pliku /etc/hosts:
Kod
78.47.57.81 aureus-miedzychod.pl
Albo ustawić DNSy "zęwnętrzne", np googlowskie w /etc/resolv.conf:
Kod
nameserver 8.8.8.8
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.