Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: obsługa błędów w gniazdach
Forum PHP.pl > Forum > Przedszkole
venom-ek
hej, mam "coś takiego", co za pomocą gniazd ściągnie mi wybrany plik:

  1. <?php
  2. function sciagaj() {
  3. global $domena;
  4. global $plik;
  5. $fp = fsockopen($domena, 80);
  6. $data = "GET $plik HTTP/1.1rn";
  7. $data .= "Host: $domenarn";
  8. $data .= "Connection: Closernrn";
  9. fputs($fp, $data);
  10. $data = '';
  11. while (strlen($buf = fread($fp, 20))) $data .= $buf;
  12. fclose($fp);
  13. $data = substr($data, strpos($data, "rnrn") + 4);
  14. if ($fp = fopen('plik.tmp', 'w')) fputs($fp, $data);
  15. if(file_exists('plik.tmp')) { // TUTAJ JEST ZLE!!!
  16. return(0);
  17. } else {
  18.  return(1);
  19.  }
  20. }
  21. ?>


funkcja miala zwracać wartość 0 w przypadku, gdy wszystko poszło ok, natomiast inną (1) gdy coś było nie tak.
Jednak - tam gdzie pisze "TUTAJ JEST ZLE!!!" jest ... źle smile.gif

to znaczy- plik i tak będzie istniał, błędu żadnego nie ma, bo połączenie zostanie nawiązane. gdyby jednak napotkać ze strony serwera 404 i 403, to plik.tmp będzie zawierał to, co zobaczylibyśmy w przeglądarce ;/

Jak mogła by wyglądać obsługa tego typu (i być może i innych) błędów przy połączeniach wykorzystując gniazda ?

Myślałem nad sprawdzaniem zawartości tego co jest w plik.tmp, ale możliwe to by było tylko wtedy, gdy wiemy CO dokładnie ma być ściągane (a zakładam że nie wiemy smile.gif)... bo przecież nie możemy tego przeszukiwać pod kątem jakiegoś ciągu znaków (chociażby 404) - plik ściągany może zawierać coś z 404 i już by było źle, a zresztą serwer może wyrzucić co tylko adminowi się będzie podobać, wcale nie musi pokazać kodu błedu...
hwao
Serwer wysyla zawsze naglowek dotyczacy stanu strony, po prostu go przeczytaj i sprawdz czy jest "ok" czy tez inne bledy
venom-ek
rzeczywiście, nie zauważyłem tego dry.gif

a tak przy okazji, to jeżeli jest ok, to serwer wyrzuci mi HTTP/1.1 200 OK lub ewentualnie HTTP/1.0 200 OK ? innej mozliwosci za bardzo nie ma ? (nie chce czegos pominac)

pozdrawiam i dziekuje za odpowiedz!
hwao
Tu masz dokładnie opisane co i jak

Po angielsku, dokładnie
http://en.wikipedia.org/wiki/HTTP_status_code

Tu tez dobrze, po niemiecku:
http://de.selfhtml.org/servercgi/server/httpstatuscodes.htm
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.