Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [cURL] Edycja profilu w vBulletin
Forum PHP.pl > Forum > PHP
ladovnik
Witam. Zrobiłem skrypt, który poprawnie loguje się na forum vBulletin. Jednak kiedy każę robotowi przyjeść na podstronę z edycją profilu, forum zwraca następujący błąd:

Cytat
Your submission could not be processed because you have logged in since the previous page was loaded.

Please push the back button and reload the previous window.


Oto kod skryptu:
  1. $CH=curl_init();
  2.  
  3. $URL='http://www.adres.pl/';
  4. $USER='ladovnik';
  5. $PASS='...';
  6.  
  7. $LOGIN_U=$URL.'login.php?do=login';
  8. $LOGIN_F=Array(
  9. 'vb_login_username' => $USER,
  10. 'cookieuser' => 1,
  11. 'vb_login_password' => $PASS,
  12. 's' => '',
  13. 'securitytoken' => 'guest',
  14. 'do' => 'login',
  15. 'vb_login_md5password' => false,
  16. 'vb_login_md5password_utf' => false
  17. );
  18.  
  19.  
  20.  
  21. curl_setopt($CH, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 5.1; pl; rv:1.8.1.4) Gecko/20070515 Firefox/2.0.0.4');
  22. curl_setopt($CH, CURLOPT_URL, $LOGIN_U);
  23. curl_setopt($CH, CURL_POST, 1);
  24. curl_setopt($CH, CURLOPT_POSTFIELDS, mkFieldsList($LOGIN_F));
  25. curl_setopt($CH, CURLOPT_COOKIEFILE, "cookie.txt");
  26. curl_setopt($CH, CURLOPT_COOKIEJAR, "cookie.txt");
  27. curl_setopt($CH, CURLOPT_RETURNTRANSFER, 1);
  28. $res=curl_exec($CH);
  29.  
  30.  
  31. $EDIT_U=$URL.'profile.php?do=editprofile';
  32.  
  33. curl_setopt($CH, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 5.1; pl; rv:1.8.1.4) Gecko/20070515 Firefox/2.0.0.4');
  34. curl_setopt($CH, CURLOPT_REFERER, $LOGIN_U);
  35. curl_setopt($CH, CURLOPT_URL, $EDIT_U);
  36. curl_setopt($CH, CURLOPT_RETURNTRANSFER, 1);
  37. $res=curl_exec($CH);
  38.  
  39. echo $res;
  40.  
  41. curl_close($CH);


Moja funkcja mkFieldsList robi z pól w tablicy listę w poprawnym formacie. Działa bez zarzutu, więc pomijam ją.

Pozdrawiam,
ladovnik
fantek
Mam ten sam problem sad.gif

Mój kawałek kodu :
  1. <?php
  2. function postString($dataArray) {
  3. foreach($dataArray as $key => $value) {
  4. if(strlen(trim($value)) > 0) {
  5. $value = is_array($value) ? $value : urlencode($value);
  6. $tempString[] = $key . "=" . $value;
  7. }
  8. else {
  9. $tempString[] = $key;
  10. }
  11. }
  12. $queryString = join('&', $tempString);
  13. return $queryString;
  14. }
  15.  
  16. $target = "http://minigun.pl/login.php?do=login";
  17. // post data
  18.  
  19. $postArray['vb_login_username'] = "login";
  20. $postArray['vb_login_password'] = "haslo";
  21. $postArray['cookieuser'] = 1;
  22. $postArray['s'] = '';
  23. $postArray['securitytoken'] = 'guest';
  24. $postArray['do'] = "login";
  25.  
  26. $ch = curl_init();
  27. curl_setopt($ch, CURLOPT_URL, $target);
  28. curl_setopt($ch, CURLOPT_POSTFIELDS, postString($postArray));
  29. curl_setopt($ch, CURLOPT_POST, TRUE);
  30. curl_setopt($ch, CURLOPT_HEADER, 1); // return headers
  31. curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
  32. curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
  33. curl_setopt($ch, CURLOPT_REFERER, 'http://minigun.pl'); );
  34. curl_setopt($ch, CURLOPT_COOKIEFILE, 'cookies.txt');
  35. curl_setopt($ch, CURLOPT_COOKIEJAR, 'cookie.txt'); // Use cookie.txt for STORING cookies
  36. $html = curl_exec($ch); // Execute! $html contains curl data!
  37.  
  38.  
  39. curl_setopt($ch, CURLOPT_URL, 'http://minigun.pl/forumdisplay.php?6-Strefa-Admin%C3%B3w');
  40. curl_setopt($ch, CURLOPT_COOKIEFILE, 'cookies.txt');
  41. curl_setopt($ch, CURLOPT_COOKIEJAR, 'cookie.txt');
  42. curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
  43. curl_setopt($ch, CURLOPT_HEADER, 1);
  44. curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
  45.  
  46. $html2 = curl_exec($ch);
  47. echo $html2 ;
  48.  
  49. curl_close($ch);
  50. ?>


Może ktoś pomóc ?
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.