Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> 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 (IMG:http://forum.php.pl/style_emoticons/default/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 (IMG:http://forum.php.pl/style_emoticons/default/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
 
Start new topic
Odpowiedzi (1 - 3)
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 (IMG:http://forum.php.pl/style_emoticons/default/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
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 22.08.2025 - 19:41