Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Logowanie php
Forum PHP.pl > Forum > PHP
Piotrski
Mam problem potrzebuje skryptu, który zaloguje się na stronę i pobierze jej kod html. Logowanie odbywa się przez formularz.
Z góry dziękuje z pomoc i pozdrawiam, Piotrek!
PS: Jest mi to bardzo potrzebne.
dyktek
curl na początek
Piotrski
Czy mógłbyś napisac coś więcej na temat tej funkcji jakiś przykład zastosowania... bo przeczytałem manuala a nie wiem jak ją zastosować.
Był bym wdzięczny!
piczu
w jaki sposob jest przeprowadzane logowanie
Piotrski
Logowanie przeprowadzane jest przez formularz tz. w pola tekstowe wpisujesz login i hasło i klikasz przycisk.
piczu
musisz przestudiowac albo curl albo fsockopen z nagłowkami,
mysle ze tu sa dobre przyklady w notkach uzytkownikow i mozna z nich taki skrypt wykombinowac
Piotrski
No mam np. tam taki kod:
  1. <?php
  2.  
  3. $host = gethostbyaddr($_SERVER['REMOTE_ADDR']);
  4.  
  5. # working vars
  6. $host = 'www.example.com';
  7. $service_uri = '/cgi-bin/processACT';
  8. $vars ='code=22&act=TEST';
  9.  
  10. # compose HTTP request header
  11. $header = "Host: $hostrn";
  12. $header .= "User-Agent: php Scriptrn";
  13. $header .= "Content-Type: application/x-www-form-urlencodedrn";
  14. $header .= "Content-Length: ".strlen($vars)."rn";
  15. $header .= "Connection: closernrn";
  16.  
  17. $fp = pfsockopen("ssl://".$host, 443, $errno, $errstr);
  18. if (!$fp) {
  19.  echo "$errstr ($errno)<br/>n";
  20.  echo $fp;
  21. } else {
  22.  fputs($fp, "POST $service_uri HTTP/1.1rn");
  23.  fputs($fp, $header.$vars);
  24.  fwrite($fp, $out);
  25.  while (!feof($fp)) {
  26.  echo fgets($fp, 128);
  27.  }
  28.  fclose($fp);
  29. }
  30.  
  31. ?>

Czyli:
$host - to jest domena danego serwisu
$service_uri - to częśc adresu który znajduje się po domenie
$vars - to nazwy pól formulaza oraz ich wartości odzielane &
Czy dobrze rozymiem?
I jescze pytanie co jescze musze zmienić w tym kodzie i jak pobraz źródło HTML strony która wyświetli mi się po zalogowaniu?
piczu
dobrze,
napewno musisz jeszcze usunac protokol ssl bo chyba nie tak sie chcesz laczyc, wskaznik do strony masz w $fp, posluguj sie nim tak samo jak otwartym plikiem przez fopen.
Piotrski
Tylko powstal mi jeden problem jak zalogujesz się na strone to mesz podstrony i gdy wchodzisz na jakąś to sprawdza ci czy jesteś zalogowany a jak nie to cie odsyła do logowania i jak tu obejśc ten problem?
piczu
musisz wiedziec jak sprawdza czy jestes zalogowany
Piotrski
A jak się tego dowiedziec? Najprawdopodobniej przez cisteczka bo jak wyłączyłem to nie widzi że jestem zalogowany.
piczu
wiec jest w manualu przyklad z ciasteczkami

PS. Sprawdz klase snoopy. Sa tam metody submitform i fetch ktore ci sie przydadza
Piotrski
Wywalił mi taki błąd:
HTTP/1.0 302 Moved Temporarily Date: Fri, 09 Jun 2006 11:36:10 GMT Server: Apache/1.3.33 (Debian GNU/Linux) mod_fastcgi/2.2.10 Set-Cookie: remembered_user=cdcf4348026a222cdb5ac161e13b2cff0b0054908e898092456c98bd99019b8c
2149326c0e1af1a2; path=/; expires=Wed, 06 Dec 2006 11:36:10 GMT Set-Cookie: _session_id=f1948400c47e2d85dc854537095ee934; domain=odeo.com; path=/ Cache-Control: no-cache Location: http://odeo.com/inbox Content-Type: text/html; charset=utf-8 X-Cache: MISS from r7.ists.pl X-Cache-Lookup: MISS from r7.ists.pl:3128 Connection: close You are being redirected.
Warning: fopen(http://odeo.com/inbox/): failed to open stream: HTTP request failed! HTTP/1.0 500 Internal Server Error in c:\usr\krasnal\www\test\l.php on line 15

Warning: fpassthru(): supplied argument is not a valid stream resource in c:\usr\krasnal\www\test\l.php on line 16

Warning: fread(): supplied argument is not a valid stream resource in c:\usr\krasnal\www\test\l.php on line 17

Warning: fclose(): supplied argument is not a valid stream resource in c:\usr\krasnal\www\test\l.php on line 18
LamaMASTER
A file_get_contents ? snitch.gif
Piotrski
Jak mam to zastosować?
LamaMASTER
1 sposób: file_get_contents to funkcja pobierająca zawartość danego pliku. Możesz poprzez funkcję parseurl (ostatnio dopy mi o tym mówił) wczytać url pliku po zalogowaniu do zmiennej i za pomocą file_get_contents pobrać jego kod. Możesz od razu zastosować file_get_contents na Twoim urlu po zalogowaniu.
2 sposób: Wprowadzasz coś typu cache, tzn. robisz fwrite wynikowego kodu do jakiegoś pliku, a potem przez file_get_contents pobierasz jego zawartość.

Funkcja file_get_contents jest o tyle lepsza od fopen, fread, f... itd., że masz wszystko w jednym i na dodatek jest szybsza smile.gif
Przykład użycia:
$zmienna = file_get_contents('nazwa_pliku');
Piotrski
A teraz pytanie z innej beczki: Jak zroić skryp który będzie co określony czas czytał plik xml i dodawał nowe dane do bazy? A plik ma taką strukturę:
  1. <?xml version="1.0" encoding="UTF-8" ?>
  2. <rss xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd" version="2.0" xmlns:media="http://search.yahoo.com/mrss">
  3. <channel>
  4. <title>Odeo: abcd1's inbox</title>
  5. <link>http://odeo.com/profile/Abcd1</link>
  6. <description />
  7. <language>en-us</language>
  8. <ttl>40</ttl>
  9. <item>
  10. <title>Tytuł1</title>
  11. <description>Opis1</description>
  12. <pubDate>Fri, 09 Jun 2006 06:35:37 GMT</pubDate>
  13. <guid>tag:odeo.com,2006-06-09:1303236</guid>
  14. <enclosure url="http://www.odeo.com/show/download/1303236/1106971/media.odeo.com..files.5.7.0.501570.mp3" type="audio/mpeg" />
  15. </item>
  16. <item>
  17. <title>Tytuł2</title>
  18. <description>Opis2</description>
  19. <pubDate>Tue, 30 May 2006 11:52:34 GMT</pubDate>
  20. <guid>tag:odeo.com,2006-05-30:1255329</guid>
  21. <enclosure url="http://www.odeo.com/show/download/1255329/1106971/media.odeo.com..files.2.9.6.454296.mp3" type="audio/mpeg" />
  22. </item>
  23. <item>
  24. <title>Tytuł3</title>
  25. <link />
  26. <description>Opis3</description>
  27. <pubDate>Thu, 01 Dec 2005 20:31:10 GMT</pubDate>
  28. <guid>tag:odeo.com,2005-12-01:467720</guid>
  29. <enclosure url="http://www.odeo.com/show/download/467720/1106971/media.odeo.com.7.1.3.welcomebiz.mp3" type="audio/mpeg" length="1307782" />
  30. <itunes:author>bizstone</itunes:author>
  31. </item>
  32. </channel>
  33. </rss>
em1X
a poczytałby se autor o xmlu w php ?
(o okresowo wykonywanych skryptach było już duuuuuuuuużo)
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.