Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHPBB3] zdalna rejestracja
slammer
post
Post #1





Grupa: Zarejestrowani
Postów: 187
Pomógł: 6
Dołączył: 31.08.2005
Skąd: Bielsko-Biała

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


Tworzę portal w którym wykorzystany jest skrypt forum phpbb. Potrzebuję zrobić tak, aby założenie konta na owym portalu powodowało zdalne założenie konta na forum (z tym samym loginem i hasłem). Pierwsze co przyszło mi na myśl to CURL stworzyłem coś takiego no i prawie działa, ale niestety nie do końca. Cała procedura musi składać się z dwóch etapów:
- zaakceptowania regulaminu (formularz 1)
- wysłania wypełnionego formularza rejestracji (formularz 2)
Przypuszczam, że w tym miejscu pojawia się problem z polami 'form_token' które są poprawnie pobrane dla formularza 1, ale dla drugiego już chyba nie :/

oto kod:
  1.  
  2. //config::getConfig('url') - adres strony (http://localhost/kodeks/)
  3.  
  4. $o = new regbot();
  5. $data = $o->curl_get( config::getConfig('url').'forum/ucp.php?mode=register');
  6. $creation_time = $o->regular('<input type="hidden" name="creation_time" value="([a-z0-9]+)" />', $data);
  7. $form_token = $o->regular('<input type="hidden" name="form_token" value="([a-z0-9]+)" />', $data);
  8. $data = $o->curl_post( config::getConfig('url').'forum/ucp.php?mode=register', "creation_time=$creation_time&form_token=$form_token&agreed=1" );
  9. $creation_time = $o->regular('<input type="hidden" name="creation_time" value="([a-z0-9]+)" />', $data);
  10. $form_token = $o->regular('<input type="hidden" name="form_token" value="([a-z0-9]+)" />', $data);
  11. $data = $o->curl_post( config::getConfig('url').'forum/ucp.php?mode=register', "username=slammer&email=test123@gmail.com&email_confirm=test123@gmail.com&new_password=haselko&password_confirm=haselko&tz=1&change_lang=0&creation_time=$creation_time&form_token=$form_token&agreed=true&submit=true" );
  12.  
  13. //print $data;
  14.  
  15. class regbot {
  16. public function curl_get( $url ) {
  17. $conn = curl_init();
  18. curl_setopt( $conn, CURLOPT_URL, $url );
  19. curl_setopt( $conn, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT'] );
  20. curl_setopt( $conn, CURLOPT_COOKIEJAR, dirname(__FILE__).'/'.$this->cookie_file );
  21. curl_setopt( $conn, CURLOPT_COOKIEFILE, dirname(__FILE__).'/'.$this->cookie_file );
  22. curl_setopt( $conn, CURLOPT_ENCODING, 'gzip, deflate' );
  23. curl_setopt( $conn, CURLOPT_RETURNTRANSFER, 1 );
  24. curl_setopt( $conn, CURLOPT_REFERER, config::getConfig('url') );
  25.  
  26. $data = curl_exec( $conn );
  27. curl_close( $conn );
  28. return $data;
  29. }
  30. public function regular( $patt, $zawartosc ) {
  31. preg_match($patt, $zawartosc, $content_str);
  32. $content = $content_str[1];
  33. return $content;
  34. }
  35. public function curl_post( $url, $post ) {
  36. $conn = curl_init();
  37. curl_setopt( $conn, CURLOPT_URL, $url );
  38. curl_setopt( $conn, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT'] );
  39. curl_setopt( $conn, CURLOPT_COOKIEJAR, dirname(__FILE__).'/'.$this->cookie_file );
  40. curl_setopt( $conn, CURLOPT_COOKIEFILE, dirname(__FILE__).'/'.$this->cookie_file );
  41. curl_setopt( $conn, CURLOPT_ENCODING, 'gzip, deflate' );
  42. curl_setopt( $conn, CURLOPT_FOLLOWLOCATION, 1 );
  43. curl_setopt( $conn, CURLOPT_POST, 1 );
  44. curl_setopt( $conn, CURLOPT_REFERER, config::getConfig('url') );
  45. curl_setopt( $conn, CURLOPT_POSTFIELDS, $post );
  46. curl_setopt( $conn, CURLOPT_RETURNTRANSFER, 1 );
  47.  
  48. $data = curl_exec( $conn );
  49. curl_close( $conn );
  50. return $data;
  51. }
  52. }
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
nospor
post
Post #2





Grupa: Moderatorzy
Postów: 36 559
Pomógł: 6315
Dołączył: 27.12.2004




o ile mnie pamiec nie myli to przeciez phpbb umozliwia API, które pozwala na to co chcesz robic. Nie musisz wymyslac kola na nowo
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 11.10.2025 - 08:18