Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> obsługa błędów w gniazdach, - sockety a 404 / 403 itp.
venom-ek
post
Post #1





Grupa: Zarejestrowani
Postów: 23
Pomógł: 0
Dołączył: 3.09.2004

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


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...
Go to the top of the page
+Quote Post
hwao
post
Post #2


Developer


Grupa: Moderatorzy
Postów: 2 844
Pomógł: 20
Dołączył: 25.11.2003
Skąd: Olkusz




Serwer wysyla zawsze naglowek dotyczacy stanu strony, po prostu go przeczytaj i sprawdz czy jest "ok" czy tez inne bledy
Go to the top of the page
+Quote Post
venom-ek
post
Post #3





Grupa: Zarejestrowani
Postów: 23
Pomógł: 0
Dołączył: 3.09.2004

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


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!
Go to the top of the page
+Quote Post
hwao
post
Post #4


Developer


Grupa: Moderatorzy
Postów: 2 844
Pomógł: 20
Dołączył: 25.11.2003
Skąd: Olkusz




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
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 20.08.2025 - 09:57