Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][CURL]Naciskanie guzika w CURL'u, w formularzu POST.
Forum PHP.pl > Forum > Przedszkole
Giluś
Cześć, chce zrobić własnego PLAYER'a, a filmy będą z Putlocker'a link do filmu wygląda tak:

Kod
http://www.putlocker.com/embed/132C9B8A14CFF426


Gdy naciśniemy "Close Ad and Watch as Free User" to wykonuje się formularz w którym jest 1 wartość ukryta (robiłem kilka prób i czasem się ten value zmieniał, czasem był taki sam), później otrzymuje pozornie taki sam link, ale już z wykonanym POST'em który dodaje nam pewną ważną rzecz:

[JAVASCRIPT] pobierz, plaintext
  1. flowplayer("player", "http://static.putlocker.com/video_player.swf", {
  2. key: '#$0c4de1874473849ff8a',
  3. canvas: {
  4. backgroundGradient: "none",
  5. background: '#000000'
  6. },
  7. onMetaData:function() { this.resume(); },
  8. clip: {
  9. provider: 'lighttpd',
  10. scaling: 'fit',
  11. linkWindow: '_blank',
  12. autoPlay: true
  13. },
  14. playlist: '/get_file.php?stream=WyJNVE15UXpsQ09FRXhORU5HUmpReU5qb3hNelU1TURVeE1qWTVMakkyTURjNllUQmtNMlpsT
    1Raak5XWm1OREk0T1RSaU5XUTJZak15TmpRd1kyTmlNR0l3WXprd1lUQmxOdz09IiwiZW1iIl0='
    ,
  15. plugins: {
  16. lighttpd: {
  17. url: '/flowplayer.pseudostreaming2.swf'
  18. }
  19. }
  20. });
[JAVASCRIPT] pobierz, plaintext


A dokładnie:

Kod
/get_file.php?stream=WyJNVE15UXpsQ09FRXhORU5HUmpReU5qb3hNelU1TURVeE1qWTVMakkyTURjNllUQmtNMlpsT
1Raak5XWm1OREk0T1RSaU5XUTJZak15TmpRd1kyTmlNR0l3WXprd1lUQmxOdz09IiwiZW1iIl0=



A wiec tak, potrafię przejść na tą stronę za pomocą curl'a i gdyby ten input o name "fuck_you" był stały to pobrał bym za pomocą wyrażenia regularnego value i również za pomocą curl'a + post wysłał te dane i znowu za pomocą wyrażenia regularnego bym odczytał resztę, ale co zrobić gdy ten input o name "fuck_you" się zmienia, jak nacisnąć guzik posta ?..


Pozdrawiam i z góry bardzo dziękuje za pomoc.
b4rt3kk
Ale co się zmienia w tym inpucie? Name czy value? Nie potrafisz zbyt precyzyjnie opisać swojego problemu, więc cudów nie oczekuj. Ale przecież mimo, że wartość dla inputa jest zmienna to i tak możesz ją pobrać wyrażeniem regularnym i zapisać pod zmienną PHP, następnie przesłać CURL-em.
Giluś
Poradziłem sobie z tym wszystkim (generowanie itp) troszkę można to było skrócić itp, ale puki co to jest prototyp wiec tylko testowałem, ale się nie udało..

Gdy w przeglądarce robiłem te poszczególne kroki to ten końcowy link kopiowałem do nowej karty i rozpoczynało się pobieranie, bez żadnych problemów dochodziło do 100%.

Natomiast gdy robię to swoimi krokami i otrzymuję ten link i również ten link kopiuję do nowej karty (tak jak wcześniej), tylko że teraz pokazuje mi, że "403 - IP Not Permitted"

Kod
403 - IP Not Permitted

/r1KH3Z%2FaMY6kLQ9Y4nVxYhgT7yY39XW9a2rMTxYAihBt8fuQmbuhL3LdP%2FrjPkXzBzdxmlLszIabiuMsCCpm6Qa9zU%2B0qW82XkJeyAKtOjfKd81yQZO5dPb%2BxitqQ4bM99QQc%2Fq9DsvHw0SuMhpBrKw26JWuXJY3unjdNMQVrIMw8%2B09f1NOwDTvzdetlNZn3Pp5fZBCKqc83Lk4FCvqZIG6n8v%2BDxi7U7KhwzoE%2FI8%3D/45b1354773bb63e48b125ebc48f2507a_sd.flv

Moje IP.. does not match the ip which requested the file first (91.239.66.80)

www.avanticdn.com Content Delivery Services


Nie wiem dlaczego tak się dzieje, przecież w obu przypadkach robię to ze swojego IP, nie serwera to czemu mi tylko tak występuje błąd ?.

Mój kod wygląda tak:

  1. function file_get_contents_curl($url) {
  2. $cookie = 'bbnaut=' . urlencode('2458561058e5cfaa') . '; welcomeScreenNew=' . urlencode('welcomeScreen');
  3. $ch = curl_init();
  4. curl_setopt($ch, CURLOPT_HEADER, 0);
  5. curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
  6. curl_setopt($ch, CURLOPT_URL, $url);
  7. curl_setopt($ch, CURLOPT_COOKIE, $cookie);
  8. $data = curl_exec($ch);
  9. curl_close($ch);
  10. return $data;
  11. }
  12.  
  13. function file_get_contents_curl_post($url, $id) {
  14. $c = curl_init();
  15. curl_setopt($c, CURLOPT_URL, 'http://www.putlocker.com/embed/4E4977DF80EC75D2');
  16. curl_setopt($c, CURLOPT_POST, 1);//przesylamy metodą post
  17. curl_setopt($c, CURLOPT_POSTFIELDS, 'fuck_you='.$id.''); //dane do wyslania
  18. curl_setopt($c, CURLOPT_RETURNTRANSFER, 1);
  19. $page = curl_exec($c);
  20. curl_close($c);
  21. return $page;
  22. }
  23.  
  24. function file_get_contents_curl_xml($urlsk) {
  25. $ch = curl_init();
  26. curl_setopt($ch, CURLOPT_URL, $urlsk);
  27. curl_setopt($ch, CURLOPT_FAILONERROR, true);
  28. curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
  29. curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
  30. curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
  31. curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
  32. curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1)');
  33. $output = curl_exec($ch);
  34. curl_close($ch);
  35. return $output;
  36. }
  37.  
  38.  
  39. // URL -> LINK dO Putlockera.
  40. $url = 'http://www.putlocker.com/embed/4E4977DF80EC75D2';
  41.  
  42. // Wyciąganie ID do przesłania postem.
  43. $data = file_get_contents_curl($url);
  44. preg_match('#<input type="hidden" value="(.*)" name="fuck_you">#',$data,$ids);
  45.  
  46. // Wysyłanie posta do Putlockera o link.
  47. $id = $ids[1];
  48. $page = file_get_contents_curl_post($url, $id);
  49. preg_match('#playlist: \'(.*)#',$page,$link);
  50.  
  51. // Odbieranie prawidłowego Linku do filmu Putlockera
  52. $urls = $link[1];
  53. $dans = explode('\',', $urls);
  54. $urlsk = 'http://putlocker.com'.$dans[0];
  55. $output = file_get_contents_curl_xml($urlsk);
  56. preg_match('#</link><media:content url="(.*)" type="video/x-flv"#',$output,$linkk);
  57.  
  58. // Wyświetlanie ostatecznego linku.
  59. echo $linkk[1];
  60.  
  61. //print_r($output);


Tak jak mówię, nie przerazić się proszę kodu bo będę go później jeszcze zmieniał, a to co napisałem to szybko pisane i jest sporo błędów..


Pozdrawiam i z góry dziękuje.
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.