Skocz do zawartości

Curl logowanie i uzytkowanie danej strony


hurtopony.pl

Rekomendowane odpowiedzi

Witam ma taki skrypt i wszytko fanie mi sie loguje i wyswietla dane ale jest problem bo np jezeli chce cos dalej zrobic na tej stronie np opoublikowac post to przekierwowywuje mnie do adresu rewera i i post.php którego nie ma ma moim serwerze probowale uzywać header location (jest obecnie zakomentowany jak odkomentuje to wraca do strony glownej logowanie sie wp-admin niezalogowany .:soczek:) NIC nie daje tak jakby mnie wylogowywało .....

<?php 
$url = 'https://danastrona/wp-login.php';
$site = 'https://danastrona/wp-admin/post-new.php';
$wyjscie = 'https://danastrona/wp-admin/';
$username = 'login';
$password = 'haslo';
$data = "log=". $username ."&pwd=". $password ."&wp-submit=Log%20In&redirect_to=". $url ."wp-admin/post-new.php&testcookie=1";


login($url, $data);

echo pobierzstrone($site);


//header('location: [url="https://danstrona/wp-admin/'%3b%29;"]https://danstrona/wp-admin/');[/url]


//funkcja logownia 
function login($url,$data){
   $fp = fopen("cookie.txt", "w");
   fclose($fp);
   $login = curl_init();
   curl_setopt($login, CURLOPT_COOKIEJAR, "cookie.txt");
   curl_setopt($login, CURLOPT_COOKIEFILE, "cookie.txt");
   curl_setopt($login, CURLOPT_TIMEOUT, 40000);
   curl_setopt($login, CURLOPT_RETURNTRANSFER, TRUE);
   curl_setopt($login, CURLOPT_URL, $url);
   curl_setopt($login, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']);
   curl_setopt($login, CURLOPT_FOLLOWLOCATION, TRUE);
   curl_setopt($login, CURLOPT_POST, TRUE);
   curl_setopt($login, CURLOPT_POSTFIELDS, $data);
   ob_start();
   return curl_exec ($login);
   ob_end_clean();
   curl_close ($login);
   unset($login);    
}                  

//fukcja pobierania strony
function pobierzstrone($site){
   $ch = curl_init();
   curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
   curl_setopt($ch, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']);
   curl_setopt($ch, CURLOPT_TIMEOUT, 40);
   curl_setopt($ch, CURLOPT_FOLLOWLOCATION, TRUE);//dd
   curl_setopt($ch, CURLOPT_COOKIEJAR, "cookie.txt");
   curl_setopt($ch, CURLOPT_COOKIEFILE, "cookie.txt");
   curl_setopt($ch, CURLOPT_URL, $site);

   ob_start();
   return curl_exec ($ch);
   ob_end_clean();

   curl_close ($ch);

}



?>

Odnośnik do komentarza
Udostępnij na innych stronach

curl_setopt($curl, CURLOPT_FOLLOWLOCATION, true);

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

curl_setopt($curl, CURLOPT_FOLLOWLOCATION, true); przeciez mam w dwóch funkcjach ???? i to ustawione na true Nie rozumiem . Prosze o pomoc przeciez follow location skrypt podaza ale przycsk post w panelu admina nie ma np https://danastrona/wp-admin/new-post.php tlyko post.php i automatycznie przenosi mnie na post na moim serwerze a nie na bloga do pisania

Odnośnik do komentarza
Udostępnij na innych stronach

ale przycsk post w panelu admina nie ma np https://danastrona/wp-admin/new-post.php tlyko post.php i automatycznie przenosi mnie na post na moim
Jaki przycisk post ... w ogóle wiesz jak działa mechanizm obsługi żądań HTTP - POST, GET w cURL czy kodujesz to na oślep :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

Spróbuj najpierw pobrać stronę logowania i ciastka.

<?php
$url = 'glowna';
$login = "/login.php";
$PostFields = array(
'username' => 'test',
'password' => 'test',
'autologin' => '1',
'login' => 'Zaloguj'
);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $login);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_COOKIESESSION, 1);
curl_setopt($ch, CURLOPT_VERBOSE, 1);
curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 5.1; pl; rv:1.9.0.7) Gecko/2009021910 Firefox/3.0.7');
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 0);
curl_setopt($ch, CURLOPT_POSTFIELDS, $PostFields);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_COOKIEJAR, dirname(__FILE__) . '/cookie.txt');
curl_exec($ch);

curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_COOKIESESSION, 1);
curl_setopt($ch, CURLOPT_VERBOSE, 1);
curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 5.1; pl; rv:1.9.0.7) Gecko/2009021910 Firefox/3.0.7');
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 0);
curl_setopt($ch, CURLOPT_COOKIEFILE, dirname(__FILE__) . '/cookie.txt');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_exec($ch);
curl_close($ch);
?>

Sprawdź parametry curla i porównaj ze swoimi :)

Nie mam pojęcia dlaczemu wyleciały i mają filtera Polskie znaki w adresach Joomla od nowa napisane, czytelnie i logicznie. Dylemat adres z www czy bez? Powinno to rozwiać wszelkie wątpliwości.

Naprawiam kodowanie [krzaki, chińskie znaki, polskie znaki] dowiedz się także czymże jest kodowanie znaków bo to podstawa.

Odnośnik do komentarza
Udostępnij na innych stronach

ale przycsk post w panelu admina nie ma np https://danastrona/wp-admin/new-post.php tlyko post.php i automatycznie przenosi mnie na post na moim
Jaki przycisk post ... w ogóle wiesz jak działa mechanizm obsługi żądań HTTP - POST, GET w cURL czy kodujesz to na oślep :)

Widze ze ty wogole nie wiesz o czym ja pisze.... Skrypt ktory przedstawilem dziala logujie sie na worpressa i pobiera strone ta ktorą chce..wiec działa ...:)!

I ok ale ja po tym pobraniu chce dalej uzytkowac tą strone. A co z tego jak curl pobiera ja na moj serwer i wyswietla. jak uzytkując ta strone np postująć przyciskając przycisk post czy opublikuj ;) nie postuje bo to jest pobrana strona i wyswietlona na moim serwerze i jak chcesz jej uzywać to nie przekierowywuje cie na strone tego precla tylko szuka pliku odpowiedzialnego za publikacje na moim serwerze.i iwywala bład ... nie zanlezion storny. Probowalem z header location i przenosi na strone precla ale jestes juz wylogowany .........moze powienien pobieraz identyfikator sesji ????

Odnośnik do komentarza
Udostępnij na innych stronach

@hurtopony.pl: jeżeli chcesz żeby ciebie zalogowało to po zalogowaniu przez curla musisz wydobyć ciastka z pliku z ciastkami a potem wyślij je do swojej przeglądarki tj.:

$file = file_get_contents('cookie.txt');
//tutaj wydobądź nazwy ciastek i ich zawartość np. za pomocą preg_match
//i wyślij do siebie ciastka:
setcookie('nazwa_ciastka', 'zawartosc', 0, '/', 'domena.pl');
//lub
header('Set-Cookie: nazwa_ciastka=zawartosc; expires=' . $czas . '; path=/; domain=domena.pl');

I na wszelki wypadek na początku skryptu dodaj:

ob_start();

Nie mam pojęcia dlaczemu wyleciały i mają filtera Polskie znaki w adresach Joomla od nowa napisane, czytelnie i logicznie. Dylemat adres z www czy bez? Powinno to rozwiać wszelkie wątpliwości.

Naprawiam kodowanie [krzaki, chińskie znaki, polskie znaki] dowiedz się także czymże jest kodowanie znaków bo to podstawa.

Odnośnik do komentarza
Udostępnij na innych stronach

  • 3 tygodnie później...
@hurtopony.pl: jeżeli chcesz żeby ciebie zalogowało to po zalogowaniu przez curla musisz wydobyć ciastka z pliku z ciastkami a potem wyślij je do swojej przeglądarki tj.:

$file = file_get_contents('cookie.txt');
//tutaj wydobądź nazwy ciastek i ich zawartość np. za pomocą preg_match
//i wyślij do siebie ciastka:
setcookie('nazwa_ciastka', 'zawartosc', 0, '/', 'domena.pl');
//lub
header('Set-Cookie: nazwa_ciastka=zawartosc; expires=' . $czas . '; path=/; domain=domena.pl');

I na wszelki wypadek na początku skryptu dodaj:

ob_start();

a jak to ma wygladac w kodzie jak ciaksto to jakie worpress loged in........ ... co z tamtad wybrać.

wyslać header przykladowa na danastona/wp-admin/

Odnośnik do komentarza
Udostępnij na innych stronach

Jeżeli chcesz aby curl była zalogowany to nie musisz do siebie wysyłać ciastek wystarczy że curl je będzie miał w swoim pliku a jak chcesz żeby osoba, która wywołuje skrypt była zalogowaniu to musisz je do siebie wysłać - proste ;)

Nie mam pojęcia dlaczemu wyleciały i mają filtera Polskie znaki w adresach Joomla od nowa napisane, czytelnie i logicznie. Dylemat adres z www czy bez? Powinno to rozwiać wszelkie wątpliwości.

Naprawiam kodowanie [krzaki, chińskie znaki, polskie znaki] dowiedz się także czymże jest kodowanie znaków bo to podstawa.

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