Skocz do zawartości

[PHP + cURL] Logowanie do SEOKatalogu


artur_waw

Rekomendowane odpowiedzi

Nigdy nie miałem styczności z cURL stąd nawet proste logowanie okazało się trudne do przeskoczenia :D

Jedyne co chcę zrobić to zalogować się do SEOKatalogu i zapisać w pliku dane jak zostały zwrócone (kod strony).

Mam coś takiego:

<?php
$plik = fopen("dane.txt", w);


$PostDane['nick'] = 'nick';
$PostDane['pass'] = 'haslo';

$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, 'https://rozrywkowo.com.pl/admin/');
curl_setopt($curl, CURLOPT_REFERER, 'https://rozrywkowo.com.pl/admin/');
curl_setopt($curl, CURLOPT_POST, 1);
curl_setopt($curl, CURLOPT_POSTFIELDS, $PostDane);
curl_setopt($curl, CURLOPT_FILE, $plik);
curl_exec($curl);
curl_close($curl);
fclose($plik);
?>

Niestety w pliku "dane.txt" mam tylko kod strony tej z formularzem do logowanie a nie dostępnego panelu :)

Konsultuje się z przyjacielem: https://pl2.php.net/curl_setopt jednak rozmowa się nie klei :)

Jakieś wskazówki?

Może uda mi się zrobić coś dobrego

;)

Odnośnik do komentarza
Udostępnij na innych stronach

Wskazówki:

- zaimplementować obsługę coookie

curl_setopt($curl, CURLOPT_COOKIEFILE, 'cookie/cookieFile.txt');

curl_setopt($curl, CURLOPT_COOKIEJAR, 'cookie/cookieFile.txt');

katalog cookie musi mieć nadane prawa 777

ustawić:

curl_setopt($curl, CURLOPT_POST, true);

oraz:

curl_setopt($curl, CURLOPT_FOLLOWLOCATION, true);

I najważniejsze to ŹLE definujesz dane POST !

Daj tak: $PostDane = 'login=MyLogin&haslo=MyHaslo';

curl_setopt($curl, CURLOPT_POSTFIELDS, $PostDane);

---------

Ale sens tego zapisu "zapisać w pliku dane jak zostały zwrócone (kod strony)." jest naprawdę enigmatyczny :D

HTTP 200 usługi IT -> Dariusz Janicki | Realizacja serwisów www oraz oprogramowania w PHP / C# / Golang / Node.js / MySQL/ Laravel
Komory normobaryczne - normobaria.tech Wykonawca montażu i instalacji komory normobarii

Odnośnik do komentarza
Udostępnij na innych stronach

Mion - dziękuję za wskazówki :D

Odnośnie tego:

Ale sens tego zapisu "zapisać w pliku dane jak zostały zwrócone (kod strony)." jest naprawdę enigmatyczny

Po wejściu na stronę - https://rozrywkowo.com.pl/admin/ - widzę to:

panel1.jpg

Jak się zaloguję to adres w dalszym ciągu jest - https://rozrywkowo.com.pl/admin/ - a widzę to:

panel2.jpg

W pliku dane.txt mam kod html pierwszego obrazka a chciałbym mieć drugiego :)

Mój obecny kod:

<?php
$plik = fopen("dane.txt", w);
$cookies = dirname(__FILE__) .'/cookie.txt';
$PostDane = 'login=MojLogin&haslo=MojeHaslo';

$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, 'https://rozrywkowo.com.pl/admin/');
curl_setopt($curl, CURLOPT_REFERER, 'https://rozrywkowo.com.pl/admin/');
curl_setopt($curl, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 5.1; pl; rv:1.9.2.13) Gecko/20101203 Firefox/3.6.13');
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, TRUE); 
curl_setopt($curl, CURLOPT_COOKIEFILE, $cookies);
curl_setopt($curl, CURLOPT_COOKIEJAR, $cookies);
curl_setopt($curl, CURLOPT_POST, TRUE);
curl_setopt($curl, CURLOPT_POSTFIELDS, $PostDane);
curl_setopt($curl, CURLOPT_FILE, $plik);
curl_exec($curl);
curl_close($curl);
fclose($plik);

?>

W pliku cookie.txt mam natomiast:

# Netscape HTTP Cookie File
# https://curl.haxx.se/rfc/cookie_spec.html
# This file was generated by libcurl! Edit at your own risk.

rozrywkowo.com.pl	FALSE	/	FALSE	0	PHPSESSID	JakieśCyferkiOrazLiterki

Kod tworzę na podstawie Manuala i wzorując się na przykładach logowania do innych serwisów (Grono, NK, RapidShare) - niestety jeszcze nie udało mi się osiągnąć zamierzonego efektu :)

Może uda mi się zrobić coś dobrego

;)

Odnośnik do komentarza
Udostępnij na innych stronach

Kod tworzę na podstawie Manuala i wzorując się na przykładach logowania do innych serwisów (Grono, NK, RapidShare) - niestety jeszcze nie udało mi się osiągnąć zamierzonego efektu :D
Podaj przykładowy login i haslo do tego admina zobaczę co da się zrobić :)

HTTP 200 usługi IT -> Dariusz Janicki | Realizacja serwisów www oraz oprogramowania w PHP / C# / Golang / Node.js / MySQL/ Laravel
Komory normobaryczne - normobaria.tech Wykonawca montażu i instalacji komory normobarii

Odnośnik do komentarza
Udostępnij na innych stronach

<?php 

class mycurl { 
    protected $_useragent = 'Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.2.7) Gecko/20100715 Linux Mint/9 (Isadora) Firefox/3.6.7'; 
    protected $_url; 
    protected $_followlocation; 
    protected $_timeout; 
    protected $_maxRedirects; 
    protected $_cookieFileLocation = './cookie.txt'; 
    protected $_post; 
    protected $_postFields; 
    protected $_referer ="https://www.google.com"; 

    protected $_session; 
    protected $_webpage; 
    protected $_includeHeader; 
    protected $_noBody; 
    protected $_status; 
    protected $_binaryTransfer; 
    public    $authentication = 0; 
    public    $auth_name      = ''; 
    public    $auth_pass      = ''; 

    public function useAuth($use){ 
      $this->authentication = 0; 
      if($use == true) $this->authentication = 1; 
    } 

    public function setName($name){ 
      $this->auth_name = $name; 
    } 
    public function setPass($pass){ 
      $this->auth_pass = $pass; 
    } 

    public function __construct($url,$followlocation = true,$timeOut = 30,$maxRedirecs = 10,$binaryTransfer = false,$includeHeader = false,$noBody = false) 
    { 
        $this->_url = $url; 
        $this->_followlocation = $followlocation; 
        $this->_timeout = $timeOut; 
        $this->_maxRedirects = $maxRedirecs; 
        $this->_noBody = $noBody; 
        $this->_includeHeader = $includeHeader; 
        $this->_binaryTransfer = $binaryTransfer; 

        $this->_cookieFileLocation = dirname(__FILE__).'/cookie.txt'; 

    } 

    public function setReferer($referer){ 
      $this->_referer = $referer; 
    } 

    public function setCookiFileLocation($path) 
    { 
        $this->_cookieFileLocation = $path; 
    } 

    public function setPost ($postFields) 
    { 
       $this->_post = true; 
       $this->_postFields = $postFields; 
    } 

    public function setUserAgent($userAgent) 
    { 
        $this->_useragent = $userAgent; 
    } 

    public function createCurl($url = 'nul') 
    { 
       if($url != 'nul'){ 
         $this->_url = $url; 
       } 

        $s = curl_init(); 

        curl_setopt($s,CURLOPT_URL,$this->_url); 
        curl_setopt($s,CURLOPT_HTTPHEADER,array('Expect:')); 
        curl_setopt($s,CURLOPT_TIMEOUT,$this->_timeout); 
        curl_setopt($s,CURLOPT_MAXREDIRS,$this->_maxRedirects); 
        curl_setopt($s,CURLOPT_RETURNTRANSFER,true); 
        curl_setopt($s,CURLOPT_FOLLOWLOCATION,$this->_followlocation); 
        curl_setopt($s,CURLOPT_COOKIEJAR,$this->_cookieFileLocation); 
        curl_setopt($s,CURLOPT_COOKIEFILE,$this->_cookieFileLocation); 

        if($this->authentication == 1){ 
          curl_setopt($s, CURLOPT_USERPWD, $this->auth_name.':'.$this->auth_pass); 
        } 
        if($this->_post) 
        { 
            curl_setopt($s,CURLOPT_POST,true); 
            curl_setopt($s,CURLOPT_POSTFIELDS,$this->_postFields); 

        } 

        if($this->_includeHeader) 
        { 
              curl_setopt($s,CURLOPT_HEADER,true); 
        } 

        if($this->_noBody) 
        { 
            curl_setopt($s,CURLOPT_NOBODY,true); 
        } 
        /* 
        if($this->_binary) 
        { 
            curl_setopt($s,CURLOPT_BINARYTRANSFER,true); 
        } 
        */ 
        curl_setopt($s,CURLOPT_USERAGENT,$this->_useragent); 
        curl_setopt($s,CURLOPT_REFERER,$this->_referer); 

        $this->_webpage = curl_exec($s); 
                  $this->_status = curl_getinfo($s,CURLINFO_HTTP_CODE); 
        curl_close($s); 

    } 

  public function getHttpStatus() 
  { 
      return $this->_status; 
  } 

  public function __tostring(){ 
     return $this->_webpage; 
  } 
} 

?> 

// logowanie 
$zaloguj = new mycurl('');
$dane = array();
$dane['nick'] = 'jakislogin';
$dane['pass'] = 'jakieshaslo';
$zaloguj->setPost($dane);
$zaloguj->createCurl('adres');

może nie wysyłasz wszystkich potrzebnych danych do zalogowania,

Odnośnik do komentarza
Udostępnij na innych stronach

@arve_lek

Pytasz po co mi coś takiego czy o kod kolegi wolny? Bo jeśli o mnie chodzi to jest to spowodowane chęcią nauki, lenistwa i zaoszczędzenia czasu :P

Już wiem jak się zalogować - w tym miejscu wielkie podziękowania dla Miona ;)

Może uda mi się zrobić coś dobrego

;)

Odnośnik do komentarza
Udostępnij na innych stronach

Pytasz po co mi coś takiego czy o kod kolegi wolny?

Chodził mi bardziej o to do czego może przydać się ten skrypt. Rozumiem, że za pomocą curla można byłoby zrobić taki mini prywatny SWL ? Czyli łączymy się z serwerem np. do folderu z plikiem w którym są nasze linki albo do bazy danych, a następnie je wyświetlamy na konkretnej stronie, w którym dodaliśmy odpowiedni do tego skrypt ? Dobrze rozumuje.

Takie coś stosują firmy, które umieszczają linki (zazwyczaj jeden link) w stopce klientów ? Dzięki temu mogą je później zmienić ?

O7vVmZ7.gif

Punkty statlink.pl - dobra cena + gratis Skrypt i eBook, Blog SEO/SEM i Tatuaże na Dziarownia.pl (tatuaże)

Odnośnik do komentarza
Udostępnij na innych stronach

@artur_waw:

No to dokończ wątek do końca i napisz rozwiązanie zadanego przez siebie pytania.

Później wszyscy zainteresowani będą walić do Miona o rozwiązanie.

Remember to brush your teeth !
tworzenie stron w rozsądnej cenie oraz biuro rachunkowe poznań.

Nie masz jak dojechać? Wynajmij limuzynę w Poznaniu.

Odnośnik do komentarza
Udostępnij na innych stronach

Wszyscy zainteresowani niech się uczą PHP i korzystają z https://pl2.php.net/manual/pl/index.php w którym to większość tego typu zagadnień jest dobrze opisana z podaniem przykładów.

HTTP 200 usługi IT -> Dariusz Janicki | Realizacja serwisów www oraz oprogramowania w PHP / C# / Golang / Node.js / MySQL/ Laravel
Komory normobaryczne - normobaria.tech Wykonawca montażu i instalacji komory normobarii

Odnośnik do komentarza
Udostępnij na innych stronach

Przecież autor wątku ma już odpowiedz wiec co tak naciskasz ;)

Poza tym nie do kosza, bo są w nim cenne wskazówki ....

HTTP 200 usługi IT -> Dariusz Janicki | Realizacja serwisów www oraz oprogramowania w PHP / C# / Golang / Node.js / MySQL/ Laravel
Komory normobaryczne - normobaria.tech Wykonawca montażu i instalacji komory normobarii

Odnośnik do komentarza
Udostępnij na innych stronach

Skoro sobie poradził autor wątku to co ma jeszcze pisać ;) Naprawdę wszystkim zainteresowanym polecam naukę PHP gdyż jest to język stosunkowo prosty i przyjemnie się w nim koduje.

HTTP 200 usługi IT -> Dariusz Janicki | Realizacja serwisów www oraz oprogramowania w PHP / C# / Golang / Node.js / MySQL/ Laravel
Komory normobaryczne - normobaria.tech Wykonawca montażu i instalacji komory normobarii

Odnośnik do komentarza
Udostępnij na innych stronach

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...

Powiadomienie o plikach cookie

Umieściliśmy na Twoim urządzeniu pliki cookie, aby pomóc Ci usprawnić przeglądanie strony. Możesz dostosować ustawienia plików cookie, w przeciwnym wypadku zakładamy, że wyrażasz na to zgodę. Warunki użytkowania Polityka prywatności