Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Pobieranie strony do zmienne - nieoczekiwane znaki
Forum PHP.pl > Forum > Przedszkole
DarK MaN
Mam funckcje
  1. <?php
  2. function post($host, $path, $query, $cookie)
  3. {
  4. $post =
  5. "POST /$path HTTP/1.1rn".
  6. "Host: $hostrn".
  7. "Content-type: application/x-www-form-urlencodedrn".
  8. "Cookie: ".$cookie."rn".
  9. "Content-length: ".strlen($query)."rn".
  10. "Connection: closernrn".
  11. $query;
  12. $h=fsockopen($host,80);
  13. fwrite($h,$post);
  14.  
  15.  
  16. $r='';
  17. while (!feof($h))
  18. $r .= fread($h, 8192);
  19.  
  20. fclose($h);
  21. return $r;
  22. }
  23. ?>


Kod
string post(string  nazwa_hosta, string sciezka_pliku, string zmienne_post, string cookie)


Przy pobieraniu niektórych stron w kodzie pojawiają się nieporządne znaki np.: 19d, 5f, 740, 95, c59, itp. Co może być powodem takiego zachowania?
TomASS
może pomimo:
  1. <?php
  2.  
  3. $r=' ';
  4.  
  5. ?>


dalej są w nim jakieś "śmieci"
DarK MaN
No są nadal.
Może zadam inne pytanie. Znacie jakieś fajne funkcje która wysyła zapytanie HTTP do serwera metodą POST wraz z dołączonymi ciasteczkami i zwraca odpowiedz? Może znacie jakiś kurs w języku polskim gdzie są opisane dokładnie gniazda i strumienie bo manual jest trochę ciężko strawny smile.gif
Wave
Potraktuj to hexdec() i chr(), zobaczymy co wyjdzie. biggrin.gif
DarK MaN
Wyszlo ?, _, @, ?, Y Czyli nic ciekawego tongue.gif Ten problem pojawia się z tego co widzę tylko podczas pobierania danych za pomocą fsockopen. Na podstawie przykładów z manuala napisałem taką funkcje:
  1. <?php
  2. function post($host, $query, $cookie)
  3. {
  4.  
  5. $opts = array(
  6. 'http'=>array(
  7. 'method'=>"POST",
  8. 'header'=>"Content-type: application/x-www-form-urlencodedrn".
  9. "Cookie: ".$cookie."rn".
  10. "Content-length: ".strlen($query)."rn".
  11. "Connection: closernrn".
  12. $query
  13. )
  14. );
  15.  
  16. $context = stream_context_create($opts);
  17.  
  18. if($plik = fopen($host, 'r', false, $context))
  19. {
  20. $r='';
  21. while (!feof($plik))
  22. $r .= fread($plik, 8192);
  23. fclose($plik);
  24.  
  25. return $r;
  26. }
  27. else
  28. return FALSE;
  29. }
  30. ?>

Wszystko działa do momentu gdy podam argument $query (dane wysyłane metoda POST). Wtedy wszystko się wysypuje (pisze ze nie można znaleźć strony). Wie ktoś jak się buduje nagłówki HTTP dla funkcji stream_context_create? Ja szczerze mówiąc kompletnie nie wiem na czym polega działanie tej funkcji. Może ktoś mnie oświeci? smile.gif
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.