Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHPBB3] zdalna rejestracja
slammer
post 19.04.2010, 09:38:50
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
nospor
post 19.04.2010, 09:40:24
Post #2





Grupa: Moderatorzy
Postów: 36 519
Pomógł: 6307
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


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
slammer
post 19.04.2010, 11:57:41
Post #3





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

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


hehe to mnie zaskoczyłeś winksmiley.jpg Nie wiedziałem o istnieniu czegoś takiego. Mam nadzieję, że teraz już nie będzie problemu.

wystarczyło tyle winksmiley.jpg
  1. $user_row = array(
  2. 'username' => 'testerek1',
  3. 'user_password' => phpbb_hash('haselko'),
  4. 'user_email' => 'tester123@gmail.com',
  5. 'group_id' => 2,
  6. 'user_timezone' => 1,
  7. 'user_lang' => 'pl',
  8. 'user_type' => '0',
  9. 'user_ip' => $user->ip,
  10. 'user_regdate' => time(),
  11. );
  12. $user_id = user_add($user_row);


Ten post edytował slammer 19.04.2010, 12:04:11
Go to the top of the page
+Quote Post
quspy123
post 1.05.2010, 21:20:50
Post #4





Grupa: Zarejestrowani
Postów: 21
Pomógł: 0
Dołączył: 1.05.2010

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


tylko 1acc zrobi,resza block
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 Wersja Lo-Fi Aktualny czas: 21.09.2024 - 23:05