Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Pobieranie strony do zmienne - nieoczekiwane znaki
DarK MaN
post 20.01.2006, 16:59:02
Post #1





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

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


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?
Go to the top of the page
+Quote Post
TomASS
post 20.01.2006, 20:31:21
Post #2





Grupa: Zarejestrowani
Postów: 1 660
Pomógł: 13
Dołączył: 9.06.2004
Skąd: Wrocław i okolice

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


może pomimo:
  1. <?php
  2.  
  3. $r=' ';
  4.  
  5. ?>


dalej są w nim jakieś "śmieci"


--------------------
Go to the top of the page
+Quote Post
DarK MaN
post 20.01.2006, 20:45:01
Post #3





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

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


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
Go to the top of the page
+Quote Post
Wave
post 20.01.2006, 20:46:59
Post #4





Grupa: Zarejestrowani
Postów: 332
Pomógł: 6
Dołączył: 13.01.2005

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


Potraktuj to hexdec() i chr(), zobaczymy co wyjdzie. biggrin.gif
Go to the top of the page
+Quote Post
DarK MaN
post 20.01.2006, 21:34:29
Post #5





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

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


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

Ten post edytował DarK MaN 20.01.2006, 22:04:07
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 Wersja Lo-Fi Aktualny czas: 12.07.2025 - 13:22