Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [wolontariat] Lekka modyfikacja klasy
spayk
post
Post #1





Grupa: Zarejestrowani
Postów: 364
Pomógł: 3
Dołączył: 29.11.2008

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


Bardzo prosze o przerobienie tej klasy tak aby dzialała na hostingu z włączoną fukncja safe_mode i open_basedir
  1. <?php
  2. /**
  3.  * @author Michell Hoduń
  4.  * @copyright (c) 2010 Michell Hoduń <mhodun@gmail.com>
  5.  * @description Klasa odpowiedzialna za wysyłanie SMS-ów z PlayMobile.pl.
  6.  */
  7.  
  8. class PlayMobile {
  9.  
  10. /**
  11.   * Wspomagacz dla CURL'a - ułatwienie dostępu
  12.   *
  13.   * @param string $url
  14.   * @param array $post
  15.   * @param string $ref
  16.   * @param integer $follow
  17.   * @param integer $header
  18.  */
  19. public static function curl ($url, $post = NULL, $ref = NULL, $follow = 1, $header = 1, $post_type = NULL)
  20. {
  21. $ch = curl_init ($url);
  22.  
  23. curl_setopt($ch,CURLOPT_USERAGENT,'Mozilla/5.0 (Windows; U; Windows NT 5.1; pl; rv:1.9.1.7) Gecko/20091221 Firefox/3.5.7');
  24. curl_setopt($ch,CURLOPT_RETURNTRANSFER, 1);
  25.  
  26. // Zapisywanie ciastek do pliku
  27. curl_setopt($ch,CURLOPT_COOKIEJAR, dirname(__FILE__).'/cookie.txt');
  28. curl_setopt($ch,CURLOPT_COOKIEFILE, dirname(__FILE__).'/cookie.txt');
  29.  
  30. curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
  31.  
  32. if ( ! empty($post) )
  33. {
  34. $postVars='';
  35.  
  36. foreach ($post as $option => $value)
  37. {
  38. $postVars .= $option.'='.urlencode($value).'&';
  39. }
  40. curl_setopt($ch, CURLOPT_POST, 1);
  41. curl_setopt($ch, CURLOPT_POSTFIELDS, $postVars);
  42. }
  43.  
  44. if ( $ref )
  45. {
  46. curl_setopt($ch, CURLOPT_REFERER, $ref);
  47. }
  48.  
  49. curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
  50. curl_setopt($ch,CURLOPT_HEADER, 1);
  51. curl_setopt($ch,CURLOPT_FOLLOWLOCATION, $follow);
  52.  
  53. $r = curl_exec($ch);
  54. curl_close($ch);
  55.  
  56. return $r;
  57. }
  58.  
  59. /**
  60.   * Funkcja odpowiedzialna za zalogowanie się konto + zalogowanie do bramki.
  61.   *
  62.   * @param string $login
  63.   * @param string $password
  64.   */
  65. public function DoLogin ($login, $password)
  66. {
  67. $BeforePost = array('SAMLRequest' => $this->GetGateway(), 'target'=> 'https://bramka.playmobile.pl');
  68.  
  69. $content = $this->curl('https://logowanie.playmobile.pl/p4-idp2/SSOrequest.do', $BeforePost, 'https://bramka.playmobile.pl/composer/public/mmsCompose.do');
  70.  
  71. preg_match('/name="random" value="(.+?)"/', $content, $rand);
  72. $post = array('step' => 1, 'next' => 'Next', 'random' =>$rand[1], 'login' =>$login, 'password' =>$password);
  73.  
  74. // Właściwe zalogowanie się
  75. $LoginDO = $this->curl('https://logowanie.playmobile.pl/p4-idp2/Login.do',$post,'',0);
  76. $samlLog_Post = array('SAMLResponse' => $this->SAMLResponse($LoginDO), 'target'=>'https://bramka.playmobile.pl');
  77. $this->curl('https://bramka.playmobile.pl/composer/samlLog?action=sso', $samlLog_Post, 'https://logowanie.playmobile.pl/p4-idp2/SSOrequest.do');
  78.  
  79. return $this->curl('https://bramka.playmobile.pl/composer/j_security_check', $samlLog_Post, 'https://bramka.playmobile.pl/composer/samlLog?action=sso');
  80. }
  81.  
  82. /**
  83.   * Pobierz "SAMLRequest" - wymagane do zalogowania.
  84.   *
  85.   * @return $SAMLRequest
  86.   */
  87. public function GetGateway()
  88. {
  89. $SAML = $this->curl('https://bramka.playmobile.pl/composer/public/mmsCompose.do', NULL, '', 0, 0);
  90.  
  91. // Wyszukaj SAMLRequest
  92. preg_match('/value="(.*)"/msU',$SAML,$w);
  93.  
  94. $SAMLRequest = $w[1];
  95.  
  96. // Zwróć
  97. return $SAMLRequest;
  98. }
  99.  
  100. /**
  101.   * Wyciągnięcie SAMLResponse z stringa (treści strony).
  102.   *
  103.   * @param string $content
  104.   */
  105. public function SAMLResponse ($content)
  106. {
  107. preg_match('/value="(.*)"/msU', $content, $w);
  108. return trim($w[1]);
  109. }
  110.  
  111. public function SendSMS ($odbiorca, $tresc)
  112. {
  113. $content = $this->curl('https://bramka.playmobile.pl/composer/public/editableSmsCompose.do');
  114.  
  115. // Wyciągnij kod 'zabezpieczający'
  116. preg_match('/name="randForm" value="(.+?)"/', $content, $rand);
  117.  
  118. $SMS = array('recipients' => $odbiorca, 'content_in' => $tresc, 'czas' => 0, 'sendform' => 'on', 'randForm' => $rand[1], 'old_signature' => '', 'old_content' => $tresc,'content_out' => $tresc);
  119.  
  120. $content2 = $this->curl('https://bramka.playmobile.pl/composer/public/editableSmsCompose.do', $SMS);
  121.  
  122. $SMS['SMS_SEND_CONFIRMED'] = 'Wyślij';
  123. $content3 = $this->curl('https://bramka.playmobile.pl/composer/public/editableSmsCompose.do', $SMS);
  124.  
  125. if (preg_match('/Wiadomo(.*) zosta(.*)a wys(.*)ana/',$content3))
  126. {
  127. // Wiadomość została wysłana poprawnie
  128. return TRUE;
  129. }
  130. else
  131. {
  132. // Wiadomość nie została wysłana - wystąpił błąd podczas jej wysyłania.
  133. return FALSE;
  134. }
  135. }
  136. }


Błąd jaki jest zwracany:
Warning: curl_setopt() [function.curl-setopt]: CURLOPT_FOLLOWLOCATION cannot be activated when in safe_mode or an open_basedir is set in /home/xxx/domains/xxxx/public_html/PlayMobile.class.php on line 51




PS: czy ta klasa jest jeszcze aktualna czy działa nadal

Ten post edytował Spawnm 22.09.2010, 22:26:54
Powód edycji: [Spawnm]:
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 6)
vokiel
post
Post #2





Grupa: Zarejestrowani
Postów: 2 592
Pomógł: 445
Dołączył: 12.03.2007

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


http://tinyurl.com/34skcn4
Go to the top of the page
+Quote Post
spayk
post
Post #3





Grupa: Zarejestrowani
Postów: 364
Pomógł: 3
Dołączył: 29.11.2008

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


juz probowałem bez rezultatu same błędy wiec prosze o pomoc
Go to the top of the page
+Quote Post
vokiel
post
Post #4





Grupa: Zarejestrowani
Postów: 2 592
Pomógł: 445
Dołączył: 12.03.2007

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


Możliwe rozwiązania:
1. PHP: Errore CURLOPT_FOLLOWLOCATION
2. PHP HTTP protocol client
3. Zastąpić cURL soketami
4. Poprawić ustawienia na hostingu, niech się admini nauczą, że dla utrzymania bezpieczeństwa stosuje się inne metody
Go to the top of the page
+Quote Post
spayk
post
Post #5





Grupa: Zarejestrowani
Postów: 364
Pomógł: 3
Dołączył: 29.11.2008

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


a możesz zastosowac rozwiązanie 1 ?
Bardzo prosze bo ja nic z tego nie rozumiem
byłbym niezmiernie wdzięczny
Go to the top of the page
+Quote Post
yevaud
post
Post #6





Grupa: Zarejestrowani
Postów: 471
Pomógł: 89
Dołączył: 29.07.2008
Skąd: Warszawa

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


podaj widelki kwotowe w ktorych miesci sie Twoja wdziecznosc
Go to the top of the page
+Quote Post
spayk
post
Post #7





Grupa: Zarejestrowani
Postów: 364
Pomógł: 3
Dołączył: 29.11.2008

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


Te widełki kwotowe to tak średnio, zrobiłby to ktos za darmo ?
Go to the top of the page
+Quote Post

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: 23.08.2025 - 20:08