Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: fopen i zmienne POST
Forum PHP.pl > Forum > PHP
nocnyMark()
stoje przed problemem napisania procedury ktora bedzie potrafila po podaniu jej miesiaca i roku pokazac ostatni w miesiacu kurs kupna euro

z caloscia jakby nie mam wiekszych problemow ale zaraz na poczatku trafil sie ciezki orzech

na stronie:
http://www.nbp.pl/ArchC.aspx

jest formularz ktory do: 'http://www.nbp.pl/ListaABCH.aspx?Typ=c' przekazuje metoda POST dwie zmienne - rok i mies.

i teraz mam problem, jak przy pomocy np

  1. <?php
  2. $str = @fopen("http://www.nbp.pl/ListaABCH.aspx?Typ=c", "r");
  3. ?>


przekazac na tą stronę obie te zmienne ?

albo moze ktos ma pomysl jak zrobic to inaczej ? (kurs musze pobierac z NBP)

sa tez pliki xml ktore udostepnia nbp ale one maja swoje numery kolejne (http://www.nbp.pl/Kursy/xml/c146z050729.xml - dokladnie chodzi o numer 146 ktory jest numerem kolejnym tabeli kursow), ktore aby kontrolowac musialbym znac wszystkie dni robocze w roku i obliczac je za kazdym razem
strife
Czyli generalnie potrzebujesz wysłać POST bez formularza, samoistnie że tak powiem. Link na dole..

http://www.strefaphp.net/artykul12.html
nocnyMark()
zrobilem scarface tak jak polecales

Twoj skrypt dziala bo sprawdzalem u siebie z www.wp.pl

ale jak proboje zaaplikowac go do swojego problemu, a wyglada to tak:

  1. <?php
  2.  
  3. $url = 'www.nbp.pl';
  4. $fp = fsockopen($url, 80, $errno, $errstr, 1);
  5. $out = "POST /ListaABCH.aspx?Typ=C HTTP/1.0rn"; 
  6. $out .= "Host: $urlrn"; 
  7. $out .= "Content-Type: application/x-www-form-urlencodedrn";
  8. /**
  9. * Tu podajemy długość całego łańcucha zmiennych POST (patrz niżej)
  10. */
  11. $out .= "Content-Length: 14rn";
  12. $out .= "rn";
  13. /**
  14. * Tu kolejno podajemy zmienne POST oddzielając je & (tak jak w GET)
  15. */
  16. $out .= "rok=05&mies=07rn";
  17. $out .= "Connection: Closernrn";
  18. fwrite($fp, $out);
  19. while (!feof($fp))
  20. {
  21. $echo .= fgets($fp, 128);
  22. }
  23. fclose($fp);
  24. echo $echo;
  25.  
  26. ?>


wyskakuje mi strona:

  1. HTTP/1.1 302 Found
  2. Connection: close
  3. Date: Thu, 18 Aug 2005 06:06:08 GMT
  4. Server: Microsoft-IIS/6.0
  5. X-Powered-By: ASP.NET
  6. X-AspNet-Version: 1.1.4322
  7. Location: /home.html?aspxerrorpath=/ListaABCH.aspx
  8. Cache-Control: private
  9. Content-Type: text/html; charset=utf-8
  10. Content-Length: 157
  11.  
  12. <html><head><title>Object moved</title></head><body>
  13. <h2>Object moved to <a href='/home.html?aspxerrorpath=/ListaABCH.aspx'>here</a>.</h2>
  14. </body></html>


a powinna wyskoczyc strona z tabelami kursow w wybranym miesiacu

szukalem na googlach co moze oznaczac odpowiedz Object moved here przy wywolywaniu fsockopen ale tam neistety nic nie ma
ActivePlayer
Kod
HTTP/1.1 302 Found
Connection: close
na moje oko cos zle dane postem wysyłasz smile.gif
nocnyMark()
tak wyglada formularz na stronie NBP: http://www.nbp.pl/ArchC.aspx

  1. <form action="ListaABCH.aspx?Typ=c" method="post">
  2. <b>Wybierz rok:&nbsp;</b>
  3. <select name="rok">
  4. <option value="02">2002</option>
  5. <option value="03">2003</option>
  6. <option value="04">2004</option>
  7. <option value="05" selected="selected">2005</option>
  8.  
  9. ,&nbsp;
  10.  
  11. <b> miesiąc: </b>
  12. <select name="mies">
  13. <option value="01">&nbsp;styczeń&nbsp;</option>
  14. <option value="02">&nbsp;luty&nbsp;</option>
  15. <option value="03">&nbsp;marzec&nbsp;</option>
  16. <option value="04">&nbsp;kwiecień&nbsp;</option>
  17. <option value="05">&nbsp;maj&nbsp;</option>
  18. <option value="06">&nbsp;czerwiec&nbsp;</option>
  19. <option value="07">&nbsp;lipiec&nbsp;</option>
  20.  
  21. <option value="08" selected="selected">&nbsp;sierpień&nbsp;</option>
  22. <option value="09">&nbsp;wrzesień&nbsp;</option>
  23. <option value="10">&nbsp;październik&nbsp;</option>
  24. <option value="11">&nbsp;listopad&nbsp;</option>
  25. <option value="12">&nbsp;grudzień&nbsp;</option>
  26.  
  27. &nbsp;<b>i</b>&nbsp;
  28. <input type="submit" value="zaakceptuj!">
  29. </form>


wiec z powyzszego wynika ze z formularza wychodza zmienne rok i mies

chyba ze zle cos rozumiem

juz 3 raz podchodzilem do tego problemu, w ciagu ostatniego pol roku smile.gif
i w koncu pytam na forum bo znalesc nie moge smile.gif
hwao
ja ostanio pisałem kod do polaczen http i analizowania request'a (co prawda nadal dokladnie nie przetestowalem go, jak cos znajdziesz mozesz dac znac).
Obsluguje proxy.

http://windforce.strefaphp.net/code/http/

Kod pod php (jak nie wpisujesz nic w metode proxy to laczy bez niego)
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.