Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Wysyłanie PM na forum poprzez skrypt
Forum PHP.pl > Forum > PHP
patrysiek2
Otóż po ciężkim i mało efektownym myśleniu wyszedł mi taki kodzik:

  1. function send_msg($u_id)
  2. {
  3. $config['address'] = 'http://forum.taern.pl/';
  4. $path['cookie'] = dirname(__FILE__).'/cookies.txt';
  5.  
  6. $post['post'] = 'Wyślij';
  7. $post['message'] = 'wiadomosc';
  8. $post['subject'] = 'Rejestracja -Dynamiczne Sygnatury na devsite-waski.hol.es';
  9. $post['address_list[u][680]'] = "to";
  10. $ch = curl_init($config['address'].'ucp.php?i=pm&mode=compose&u='.$u_id);
  11. curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
  12. curl_setopt($ch, CURLOPT_HEADER, true);
  13. curl_setopt($ch, CURLOPT_COOKIEFILE, $path['cookie']);
  14. curl_setopt($ch, CURLOPT_COOKIEJAR, $path['cookie']);
  15. curl_setopt($ch, CURLOPT_POSTFIELDS, prepare_request($post));
  16. $page = curl_exec($ch);
  17. curl_close($ch);
  18.  
  19. echo $page;
  20. }


Skrypcik powinien wysyłać wiadomość do użytkownika o id 680, lecz niestety tego nie robi :/
Wszystko ładnie wyświetla (temat, tresc, odbiorcę), lecz wyskakuje Wysłany formularz był nieprawidłowy. Proszę spróbować ponownie. więc pewnie czegoś brakuje.
Zapraszam na http://devsite-waski.hol.es i tam jest jak to wygląda.
grzes999
Sprawdź jakie nagłówki idą podczas wysyłania wiadomości na forum. Bo jaka sam stwierdzielś pewnie czegoś brakuje.
No i pokaż jak wygląda prepare_request
patrysiek2
Cytat(grzes999 @ 4.11.2013, 20:23:50 ) *
Sprawdź jakie nagłówki idą podczas wysyłania wiadomości na forum. Bo jaka sam stwierdzielś pewnie czegoś brakuje.
No i pokaż jak wygląda prepare_request


  1. function prepare_request($query)
  2. {
  3. if(is_array($query) && !empty($query))
  4. {
  5. foreach($query as $key => $value)
  6. {
  7. $query[$key] = urlencode($key).'='.urlencode($value);
  8. }
  9.  
  10. return implode('&', $query);
  11. }
  12. else
  13. {
  14. return false;
  15. }
  16. }
grzes999
A sprawdzałeś co jest wysyłane postem jak wysyłasz normalnie wiadmośćquestionmark.gif
Można to sprawdzić dodatkiem do Firefoxa Live http headers. Wtedy zobaczysz czy wysylasz wszystko to co przezyłane podczas norlamnego przysylania.
Olbrych
A jak później to wykorzystujesz ? $post['address_list[u][680]'] = "to"; Dziwny zapis. Robisz póżniej z niego $adrdress_list[u][680] ?
patrysiek2
Cytat(grzes999 @ 5.11.2013, 10:11:56 ) *
A sprawdzałeś co jest wysyłane postem jak wysyłasz normalnie wiadmośćquestionmark.gif
Można to sprawdzić dodatkiem do Firefoxa Live http headers. Wtedy zobaczysz czy wysylasz wszystko to co przezyłane podczas norlamnego przysylania.


Albo nie umiem się obsługiwać albo nwm :/ Podczas wysyłania wiadomości z prawdziwego forum mam takie cuś:
Kod
http://forum.taern.pl/styles/cs/theme/images/site_login.png

GET /styles/cs/theme/images/site_login.png HTTP/1.1
Host: forum.taern.pl
User-Agent: Mozilla/5.0 (Windows NT 5.1; rv:23.0) Gecko/20100101 Firefox/23.0
Accept: image/png,image/*;q=0.8,*/*;q=0.5
Accept-Language: pl,en-us;q=0.7,en;q=0.3
Accept-Encoding: gzip, deflate
Referer: http://forum.taern.pl/styles/cs/theme/sv.css
Cookie: phpbb3_az4x4_u=680; phpbb3_az4x4_k=; phpbb3_az4x4_sid=c9bb337b1a97379b9792ffeb5ade8d5f
Connection: keep-alive

HTTP/1.1 404 Not Found
Date: Tue, 05 Nov 2013 15:05:14 GMT
Server: LiteSpeed
Connection: Keep-Alive
Keep-Alive: timeout=5, max=100
Cache-Control: private, no-cache, no-store, must-revalidate, max-age=0
Pragma: no-cache
Content-Type: text/html
Content-Length: 389
----------------------------------------------------------
http://forum.taern.pl/ucp.php?i=pm&mode=view&p=83030

GET /ucp.php?i=pm&mode=view&p=83030 HTTP/1.1
Host: forum.taern.pl
User-Agent: Mozilla/5.0 (Windows NT 5.1; rv:23.0) Gecko/20100101 Firefox/23.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: pl,en-us;q=0.7,en;q=0.3
Accept-Encoding: gzip, deflate
Cookie: phpbb3_az4x4_u=680; phpbb3_az4x4_k=; phpbb3_az4x4_sid=c9bb337b1a97379b9792ffeb5ade8d5f
Connection: keep-alive

HTTP/1.1 200 OK
Content-Encoding: gzip
Vary: Accept-Encoding
Transfer-Encoding: chunked
Date: Tue, 05 Nov 2013 15:05:17 GMT
Server: LiteSpeed
Connection: Keep-Alive
Keep-Alive: timeout=5, max=100
X-Powered-By: PHP/5.3.3
Content-Type: text/html; charset=UTF-8
Cache-Control: private, no-cache="set-cookie"
Expires: 0
Pragma: no-cache
----------------------------------------------------------
http://forum.taern.pl/styles/cs/theme/images/site_login.png

GET /styles/cs/theme/images/site_login.png HTTP/1.1
Host: forum.taern.pl
User-Agent: Mozilla/5.0 (Windows NT 5.1; rv:23.0) Gecko/20100101 Firefox/23.0
Accept: image/png,image/*;q=0.8,*/*;q=0.5
Accept-Language: pl,en-us;q=0.7,en;q=0.3
Accept-Encoding: gzip, deflate
Referer: http://forum.taern.pl/styles/cs/theme/sv.css
Cookie: phpbb3_az4x4_u=680; phpbb3_az4x4_k=; phpbb3_az4x4_sid=c9bb337b1a97379b9792ffeb5ade8d5f
Connection: keep-alive

HTTP/1.1 404 Not Found
Date: Tue, 05 Nov 2013 15:05:18 GMT
Server: LiteSpeed
Connection: Keep-Alive
Keep-Alive: timeout=5, max=100
Cache-Control: private, no-cache, no-store, must-revalidate, max-age=0
Pragma: no-cache
Content-Type: text/html
Content-Length: 389
----------------------------------------------------------


Cytat(Olbrych @ 5.11.2013, 15:43:30 ) *
A jak później to wykorzystujesz ? $post['address_list[u][680]'] = "to"; Dziwny zapis. Robisz póżniej z niego $adrdress_list[u][680] ?


$post['address_list[u][680]'] = "to"
Jest wklepane "na sztywno" ponieważ chce to najpierw testować. Jak uda się wysyłanie wiadomości to zrobię zamiast 680 to będzie tam zmienna która zamienia nick użytkownika z forum i pobiera jego ID, które będzie właśnie w zmiennej $post['address_list[u][/ID[/i]]'][/i]. Bo z tego co zauważyłem tak powinno być.
!*!
Skrypty forum mają opcje wysyłania masowych wiadomości PW/email przez admina, lub umożliwiają to wtyczki do nich.
Spamowanie u innych nie jest najlepsze ;)
patrysiek2
Cytat(!*! @ 5.11.2013, 16:41:12 ) *
Skrypty forum mają opcje wysyłania masowych wiadomości PW/email przez admina, lub umożliwiają to wtyczki do nich.
Spamowanie u innych nie jest najlepsze ;)

Nie chodzi o spam, lecz małą odmianę. Ktoś zakłada konto u mnie na stronce podając tylko swój login, a ja zamiast słać emaile to na skrzynkę na forum chcę wysłać PM'a.
!*!
To pogadaj z adminem forum docelowego, niech Ci udostępni API od PW.
patrysiek2
Cytat(!*! @ 5.11.2013, 16:56:21 ) *
To pogadaj z adminem forum docelowego, niech Ci udostępni API od PW.


Myślałem, że program ładnie cURL'em rozwiąże :/
grzes999
Coś nie uchwyciłeś wszystkiego ;p
to jest przesyłane postem
  1. username_list=&icon=0&address_list%5Bu%5D%5B18128%5D=to&subject=Re%3A+POMOC+-%3E+Najcz%C4%99stsze+problemy%2Fb%C5%82%C4%99dy+i+pytania&addbbcode20=100&message=sss&attach_sig=on&lastclick=1383672231&status_switch=556&post=Wy%C5%9Blij&creation_time=1383672231&form_token=d5969882a47a232b34bca0d9d4b7521054baf29a
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.