Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> CURL - Problem ze skryptem, Próbuje napisać skrypt do wysyłania wiadomości na nk
Kapucha
post
Post #1





Grupa: Zarejestrowani
Postów: 2
Pomógł: 0
Dołączył: 25.07.2008

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


Witajcie

Próbuje napisać skrypt do wysyłania wiadomości na nk.pl. Nie chodzi mi jednak o śledzika tylko o wiadomości na pocztę innego użytkownika.
Jeśli ktoś umiałby przeanalizować poniższy skrypt do wysyłania wiadomości na nk to byłbym bardzo wdzięczny. Skrypt loguje się poprawnie (linie od 16 do 32) otwiera formularz do wysyłania wiadomości do użytkownika o danym numerze profilu (linie od 34 do 42), sczytuje wszelkie zmienne zabezpieczające z pól hidden (linie od 44 do 62), wypełnia pola topic i content odpowiedzialne za temat wiadomości i treść i wszystko co ma być wysłane postem zapisuje do zmiennej $post linie od 64 do 71), ale zachowuje się tak jakby nie mógł wysłać metodą post wiadomości (linie od 73 do 78). Następnie skrypt się wylogowuje i to działa poprawnie (linie od 81 do 83). Z góry dziękuje za odpowiedzi.

  1. // INIT CURL
  2. $ch = curl_init();
  3.  
  4. //echo '=> Loggin...';
  5. //sleep(1);
  6.  
  7. //********************** LOGIN
  8. //curl_setopt($ch, CURLOPT_VERBOSE, 1);
  9. curl_setopt($ch, CURLOPT_USERAGENT, self::$USER_AGENT);
  10. curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
  11. curl_setopt ($ch, CURLOPT_FOLLOWLOCATION, 1);
  12. curl_setopt ($ch, CURLOPT_COOKIEJAR, 'cookie.txt');
  13. curl_setopt($ch, CURLOPT_REFERER, 'http://nk.pl');
  14. curl_setopt($ch, CURLOPT_URL, 'https://nk.pl/login');
  15. curl_setopt ($ch, CURLOPT_POST, 1);
  16. $post = array();
  17. $post['login'] = 'nazwa_uzytkownika';
  18. $post['password'] = 'haslo_logowania';
  19. $post['remember'] = '1';
  20. $post['ssl'] = '1';
  21.  
  22. curl_setopt ($ch, CURLOPT_POSTFIELDS, $this->createPostString($post));
  23. curl_setopt ($ch, CURLOPT_COOKIEJAR, 'cookie.txt');
  24.  
  25. $store = curl_exec ($ch);
  26.  
  27. if(!$store)
  28. {
  29. //echo '========> RETURNED: FALSE -> TERMINATING...';
  30. return;
  31. }
  32. //echo '=> Logged';
  33.  
  34. $nrProfilu = 11143965; // numer profilu do ktorego nalezy wyslac wiadomosc
  35. curl_setopt($ch, CURLOPT_REFERER, 'http://nk.pl/profile/'.$nrProfilu);
  36. curl_setopt($ch, CURLOPT_URL, 'http://nk.pl/poczta/compose/'.$nrProfilu);
  37. $messagePage = curl_exec ($ch);
  38.  
  39. if(!$messagePage) {
  40. //echo '========> RETURNED: FALSE -> TERMINATING...';
  41. return;
  42. }
  43.  
  44. $matches = array();
  45. // zmienne formularza ktory wysyla wiadomosc do uzytkownika
  46. $auto_form_ticket = '';
  47. $mail_recipient_input = '';
  48. $mail_recipient_search = '';
  49. $__utm_admin = '';
  50. $target = '';
  51.  
  52. $result = preg_match('/<input type="hidden" name="auto_form_ticket" value="([^"]+)"><input type="hidden" name="__utm_admin" value="([^"]+)">/',$messagePage,$matches);
  53. if ($result) {
  54. $auto_form_ticket = $matches[1];
  55. $__utm_admin = $matches[2];
  56. }
  57. $matches = array();
  58. $result = preg_match('/<input class="clean" readonly="readonly" tabindex="5" id="compose_mail_recipient_input" name="mail_recipient_input" type="text" value="([^"]+)"><input id="mail_recipient" type="hidden" name="mail_recipient_search" value="([^"]+)">/',$messagePage,$matches);
  59. if ($result) {
  60. $mail_recipient_input = $matches[1];
  61. $mail_recipient_search = $matches[2];
  62. }
  63.  
  64. $post = array();
  65. $post['auto_form_ticket'] = $auto_form_ticket;
  66. $post['mail_recipient_input'] = $mail_recipient_input;
  67. $post['mail_recipient_search'] = $mail_recipient_search;
  68. $post['__utm_admin'] = $__utm_admin;
  69. $post['target'] = 'http://nk.pl/profile/'.$nrProfilu;
  70. $post['topic'] = 'Temat';
  71. $post['content'] = 'Test treści wiadomości';
  72.  
  73. curl_setopt($ch, CURLOPT_REFERER, 'http://nk.pl/poczta/compose/'.$nrProfilu);
  74. curl_setopt($ch, CURLOPT_URL, 'http://nk.pl/poczta/compose/'.$nrProfilu);
  75. curl_setopt ($ch, CURLOPT_POSTFIELDS, $this->createPostString($post));
  76.  
  77. // wysłanie wiadomości. Tu coś jest nie tak bo w $result pojawia się strona z wypełnionym formularzem tak jakby nie był wysłany
  78. $result = curl_exec($ch);
  79.  
  80.  
  81. // wylogowanie z nk
  82. curl_setopt ($ch,CURLOPT_URL, 'http://nk.pl/logout?l=1');
  83. curl_exec($ch);
  84. // zamkniecie sesji
  85. curl_close ($ch);
  86. echo $result;
  87. }
  88.  
  89. /**
  90.   * Funkcja przyjmuje tablice zmiennych i buduje z niej ciag znakow do wyslania metoda post
  91.   */
  92. function createPostString($aPostFields) {
  93. foreach ($aPostFields as $key => $value) {
  94. $aPostFields[$key] = urlencode($key) . '=' . urlencode($value);
  95. }
  96. return implode('&', $aPostFields);
  97. }


--
Pozdrawiam
Marcin
Zapraszam na moją stronę promującą tanie wspólne podróżowanie i tani przewóz osób

Nikt nie wie dlaczego ten formularz na naszej klasie nie chce przejść?
Powód edycji: [thek]: Uprasza się o nie pozycjonowanie swoich stron. następnym razem będzie coś więcej niż upomnienie pisemne.


--------------------
Tani lub nawet darmowy przewóz osób i wspólne podróżowanie.
Go to the top of the page
+Quote Post
amii
post
Post #2





Grupa: Zarejestrowani
Postów: 728
Pomógł: 76
Dołączył: 12.06.2009

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


1. Sprawdzałeś wysyłane zmienne programem HTTP Live Headers ?


--------------------
gry flash online
Dobry hosting i tanie odnowienia domen firma: masternet.
Zarabianie bez wysiłku na domenach bez ruchu: prolink.
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 Aktualny czas: 21.08.2025 - 23:35