Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Logowanie do xml przez php
Forum PHP.pl > Forum > PHP
seatcordobawrc
Witam ! Próbuję wyciągnąć informację z xmlów z tej strony: http://online.sokker.org/xmlinfo.php
Jednak nie umiem sobie poradzić z uzyskaniem dostępu przez php dla strony. Istnieje także możliwość uzyskania praw poprzez ciasteczko XMLSESSID, aczkolwiek z tym także nie mogę sobie poradzić.

  1. <?
  2. $c = curl_init();
  3. curl_setopt($c, CURLOPT_URL, 'http://online.sokker.org/start.php?session=xml');
  4. curl_setopt($c, CURLOPT_POST, 1);
  5. curl_setopt($c, CURLOPT_POSTFIELDS, 'ilogin=moj_login&ipassword=moje_haslo');
  6. curl_setopt($c, CURLOPT_RETURNTRANSFER, 1);
  7. $page = curl_exec($c);
  8. curl_close($c);
  9.  
  10. $xml = simplexml_load_file('http://online.sokker.org/xml/player-13215651.xml');
  11. echo $xml -> countryID;
  12.  
  13. ?>


Dodam, że z xml niestety za dużo jeszcze co czynienia nie miałem. Pozdrawiam.
Fifi209
FOLLOWLOCATION
COOKIEJAR
COOKIEFILE

dodaj ;p

@edit
Jak nie będzie działało, to do FF zainstaluj plugin: live http headers i zobacz jakie nagłówki są wysyłane.
seatcordobawrc
FOLLOWLOCATION
COOKIEJAR
COOKIEFILE


Nie poszło...

A live http headers to nie wiem z czym się je...

Jakoś się udało, aczkolwiek nastąpił inny problem... Webserv oraz XAMPP wyświetlają błąd:

Kod
Fatal error: Uncaught exception 'Exception' with message 'String could not be parsed as XML' in C:\xampp\htdocs\index2.php:30 Stack trace: #0 C:\xampp\htdocs\index2.php(30): SimpleXMLElement->__construct('') #1 {main} thrown in C:\xampp\htdocs\index2.php on line 30



Z biblioteką curla sobie poradziłem ale tu wymiękam...

Poradziłem sobie, problem był błachy, miałem zablokowany port przez firewall. Teraz znów coś innego :-)
  1. <?php
  2.  
  3. $file = "baza.txt";
  4.  
  5. //logowanie i ustawienie ciastka
  6.  
  7. $postFields['ilogin'] = "login";
  8. $postFields['ipassword'] = "hasło";
  9.  
  10. $c = curl_init();
  11.  
  12. curl_setopt($c, CURLOPT_COOKIEJAR, dirname(__FILE__) . '/cookie_xml.txt');
  13. curl_setopt($c, CURLOPT_URL, 'http://online.sokker.org/start.php?session=xml');
  14. curl_setopt($c, CURLOPT_POST, 1);
  15. curl_setopt($c, CURLOPT_POSTFIELDS, $postFields);
  16. curl_setopt($c, CURLOPT_RETURNTRANSFER, 1);
  17. curl_exec($c);
  18.  
  19. $i=1;
  20. // ciasto ustawione pobieram dane z wskazanego url
  21. //for( $x = 7000000; $x <= 17525825; $x++ ){
  22. for( $x = 7685443; $x <= 17525825; $x++ ){
  23. //
  24. $url="http://online.sokker.org/xml/player-".$x.".xml";
  25.  
  26. curl_setopt($c, CURLOPT_COOKIEFILE, dirname(__FILE__) . '/cookie_xml.txt');
  27. curl_setopt($c, CURLOPT_RETURNTRANSFER, 1);
  28. curl_setopt($c, CURLOPT_URL, $url);
  29. $dane = curl_exec($c);
  30.  
  31. // parsuję dane i wyświetlam
  32.  
  33. @$xml = new SimpleXMLElement($dane);
  34.  
  35. $countryid=$xml[$x]->countryID;
  36. $id=$xml[$x]->ID;
  37. $age=$xml[$x]->age;
  38. $name=$xml[$x]->name;
  39. $surname=$xml[$x]->surname;
  40. $value=$xml[$x]->value;
  41. $value=$value/4;
  42. If ($countryid==90){
  43. $tablicaid[$i]=$id;
  44. $tablicaage[$i]=$age;
  45. $tablicaname[$i]=$name;
  46. $tablicasurname[$i]=$surname;
  47. $tablicavalue[$i]=$value;
  48. $tekst='[pid='.$tablicaid[$i].']'.$tablicaname[$i].' '.$tablicasurname[$i].' Age: '.$tablicaage[$i].' '.$tablicavalue[$i].' euro[/pid]';
  49. $i=$i+1;
  50.  
  51. $fp=fopen("$file", "a");
  52. fwrite($fp, $tekst);
  53. fwrite($fp, '<br />');
  54. }
  55.  
  56. }
  57.  
  58. ?>


Pętla wykonuje się 4080 razy i skrypt się zatrzymuje. Bez żadnego błędu. Błędy mam wyłączone, ponieważ przy każdej pętli wyświetlane są warningi:
Kod
Warning: main() [function.main]: Cannot add element player number 7685443 when only 0 such elements exist in C:\Program Files\WebServ\httpd\index2.php on line 37

Warning: main() [function.main]: Cannot add element player number 7685443 when only 0 such elements exist in C:\Program Files\WebServ\httpd\index2.php on line 38

Warning: main() [function.main]: Cannot add element player number 7685443 when only 0 such elements exist in C:\Program Files\WebServ\httpd\index2.php on line 39

Warning: main() [function.main]: Cannot add element player number 7685443 when only 0 such elements exist in C:\Program Files\WebServ\httpd\index2.php on line 40

Warning: main() [function.main]: Cannot add element player number 7685443 when only 0 such elements exist in C:\Program Files\WebServ\httpd\index2.php on line 41

Warning: main() [function.main]: Cannot add element player number 7685443 when only 0 such elements exist in C:\Program Files\WebServ\httpd\index2.php on line 42
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.