![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 8 Pomógł: 0 Dołączył: 29.07.2011 Ostrzeżenie: (0%) ![]() ![]() |
Dobry, mam skrypt, który loguje się na inną stronę poprzez cURL'a. Niestety mój hosting ma open_basedir, przez co followlocation nie działa :c. Znalazłem "zamiennik" jednakże nie ogarniam go...
Kod <?php function curl_exec_follow(/*resource*/ $ch, /*int*/ &$maxredirect = null) { $mr = $maxredirect === null ? 5 : intval($maxredirect); if (ini_get('open_basedir') == '' && ini_get('safe_mode' == 'Off')) { curl_setopt($ch, CURLOPT_FOLLOWLOCATION, $mr > 0); curl_setopt($ch, CURLOPT_MAXREDIRS, $mr); } else { curl_setopt($ch, CURLOPT_FOLLOWLOCATION, false); if ($mr > 0) { $newurl = curl_getinfo($ch, CURLINFO_EFFECTIVE_URL); $rch = curl_copy_handle($ch); curl_setopt($rch, CURLOPT_HEADER, true); curl_setopt($rch, CURLOPT_NOBODY, true); curl_setopt($rch, CURLOPT_FORBID_REUSE, false); curl_setopt($rch, CURLOPT_RETURNTRANSFER, true); do { curl_setopt($rch, CURLOPT_URL, $newurl); $header = curl_exec($rch); if (curl_errno($rch)) { $code = 0; } else { $code = curl_getinfo($rch, CURLINFO_HTTP_CODE); if ($code == 301 || $code == 302) { preg_match('/Location:(.*?)\n/', $header, $matches); $newurl = trim(array_pop($matches)); } else { $code = 0; } } } while ($code && --$mr); curl_close($rch); if (!$mr) { if ($maxredirect === null) { trigger_error('Too many redirects. When following redirects, libcurl hit the maximum amount.', E_USER_WARNING); } else { $maxredirect = 0; } return false; } curl_setopt($ch, CURLOPT_URL, $newurl); } } return curl_exec($ch); } ?> Chciałbym się dowiedzieć, gdzie w powyższy skrypy mam wlepić to zrobiłem wcześniej, czyli: Kod $login = "a"; $haslo = "b"; $serwer = "c"; $cookie = './cookie.txt'; $useragent = 'Mozilla/5.0 (X11; U; Linux i686; pl; rv:1.8.0.3) Gecko/20060426 Firefox/1.5.0.3'; $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX''); curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie); curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie); curl_setopt($ch, CURLOPT_COOKIE, $cookie); curl_setopt($ch, CURLOPT_USERAGENT, $useragent); curl_setopt($ch, CURLOPT_POST, true); curl_setopt($ch, CURLOPT_POSTFIELDS,'1111111111111111111111111111111111111111111''); curl_setopt($ch, CURLOPT_REFERER, '222222222222222222222222'); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); $wynik = curl_exec($ch); curl_close($ch); print_r($wynik[0]); Siedzę już godzinę nad tym "zamiennikiem" i nie mam bladego pojęcia co jest czym i do czego powlepiać to co wyżej podałem.... Jeśli ktoś byłoby skory wytłumaczyć i podpowiedzieć, jak połączyć "to coś" w jedność, bardzo bym dziękował. Pozdrawiam |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 1 233 Pomógł: 87 Dołączył: 6.03.2009 Ostrzeżenie: (40%) ![]() ![]() |
http://pear.php.net/package/HTTP_Request2/
Sześcioma liniami robie tyle co Ty osiemdziesięcioma. Ten post edytował wNogachSpisz 2.03.2013, 19:08:06 |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 8 Pomógł: 0 Dołączył: 29.07.2011 Ostrzeżenie: (0%) ![]() ![]() |
No fajnie kolego, aczkolwiek nie rozumiem powyższego kodu i powiedz mi, jak mam dodać tutaj możliwość wpisana hasła i loginu oraz świata gry?
Proszę o wytłumaczenie. Pozdrawiam |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 1 233 Pomógł: 87 Dołączył: 6.03.2009 Ostrzeżenie: (40%) ![]() ![]() |
Skąd mam wiedziec gdzie trzeba dać login? W Twoim przykladnie zmienna $login po zdefiniowaniu nie zostaje już użyta.
|
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 8 Pomógł: 0 Dołączył: 29.07.2011 Ostrzeżenie: (0%) ![]() ![]() |
Kod $login = "login"; $haslo = "haslo"; $serwer = "666"; $cookie = 'cookie.txt'; $useragent = 'Mozilla/5.0 (X11; U; Linux i686; pl; rv:1.8.0.3) Gecko/20060426 Firefox/1.5.0.3'; // curl ma problem // logowanie na plemiona $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, 'http://www.plemiona.pl/index.php?action=login&server_pl'.$serwer.''); curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie); curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie); curl_setopt($ch, CURLOPT_COOKIE, $cookie); curl_setopt($ch, CURLOPT_USERAGENT, $useragent); curl_setopt($ch, CURLOPT_POST, true); curl_setopt($ch, CURLOPT_POSTFIELDS,'user='.$login.'&password='.$haslo.''); curl_setopt($ch, CURLOPT_REFERER, 'http://www.plemiona.pl/'); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); /* przejscie do wybranej zakladli curl_exec($ch); curl_setopt($ch, CURLOPT_URL, '$zakladka'); */ $wynik = curl_exec($ch); curl_close($ch); print_r($wynik[0]); To jest kod w wersji "finalnej". |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 15.07.2025 - 10:30 |