Tomasz Serwański

Tomasz Serwański Microsoft Dynamics
CRM - konsultant
biznesowy

Temat: curl - help!

z gory przepraszam, prosty czlowiek jestem i curla probuje uzywac od wczoraj; co probuje osiagnac to wywolac skrypt (jak nizej) w efekcie ktorego zostane automatycznie zalogowany do konsoli administracyjnej joomli; drobny problem - nie dziala :(

gdyby ktos mogl podpowiedziec co jest nie tak bylbym zobowiazany.

===========


Obrazek


===========

co probowalem:
- podawac w 'CURLOPT_POSTFIELDS' wszystkie parametry zdefiniowane wewnatrz - bez efektu
- uzywac (niewykomentowanych powyzej) HTTPAUTH & USERPWD - tez bez efektu

help.Tomasz Serwański edytował(a) ten post dnia 30.12.08 o godzinie 01:11
Janusz Skudrzyk

Janusz Skudrzyk Członek zarządu,
weblabs.pl

Temat: curl - help!

czym objawia się brak działania skryptu ?
Tomasz Serwański

Tomasz Serwański Microsoft Dynamics
CRM - konsultant
biznesowy

Temat: curl - help!

Janusz Skudrzyk:
czym objawia się brak działania skryptu ?
biala pusta strona bez tresci
Janusz Skudrzyk

Janusz Skudrzyk Członek zarządu,
weblabs.pl

Temat: curl - help!

edit: grrr

na początek
echo "czy mam curla ?" ;
$curl = curl_init() ;
echo "mam" ;

ew. phpinfo() ;

i czy coś później jest robione z $strona, np. echo $strona ; ? bo samo się nie wyświetliJanusz Skudrzyk edytował(a) ten post dnia 30.12.08 o godzinie 01:36
Marcin Laber

Marcin Laber internet
technologies
magician

Temat: curl - help!

Tomasz Serwański:
Janusz Skudrzyk:
czym objawia się brak działania skryptu ?
biala pusta strona bez tresci

Jeśli skrypt wygląda tak, jak w pierwszym poście, to znaczy, że pusta strona jest objawem jak najbardziej prawidłowym :)
Poza tym, jakaś nowa moda - umieszczanie kodu na obrazku ;)
Tomasz Serwański

Tomasz Serwański Microsoft Dynamics
CRM - konsultant
biznesowy

Temat: curl - help!

Marcin L.:
Tomasz Serwański:
Janusz Skudrzyk:
czym objawia się brak działania skryptu ?
biala pusta strona bez tresci

Jeśli skrypt wygląda tak, jak w pierwszym poście, to znaczy, że pusta strona jest objawem jak najbardziej prawidłowym :)
Poza tym, jakaś nowa moda - umieszczanie kodu na obrazku ;)
a, to w takim razie nie o to chodzi - jak pisalem chcialbym zobaczyc panel administracyjny joomli tak, jak go widze po zalogowani.
a kod na obrazku bo sie, dran, wkleic nie chcial :|

konto usunięte

Temat: curl - help!

$strona zawiera rezultat grabienia, zobacz czy sie powiodloKuba Świegot edytował(a) ten post dnia 30.12.08 o godzinie 02:01
Tomasz Serwański

Tomasz Serwański Microsoft Dynamics
CRM - konsultant
biznesowy

Temat: curl - help!

Janusz Skudrzyk:
edit: grrr

na początek
echo "czy mam curla ?" ;
$curl = curl_init() ;
echo "mam" ;

ew. phpinfo() ;

i czy coś później jest robione z $strona, np. echo $strona ; ? bo samo się nie wyświetli
php jest i dziala, curl jest i dziala..
oczywiscie dodanie 'echo $strona' ciut pomoglo - mam teraz interfejs do logowania do panelu administracyjnego joomli - niestety nadal do logowania, a nie po zalogowaniu :( tak jakby wysylanie hasla/usera postem nie dzialalo..Tomasz Serwański edytował(a) ten post dnia 30.12.08 o godzinie 02:05
Janusz Skudrzyk

Janusz Skudrzyk Członek zarządu,
weblabs.pl

Temat: curl - help!

wywal httpauth i userpwd (chyba, ze katalog jest poprzez .htpasswd zabezpieczony)

wklej formularz logowania, może być od form do /formJanusz Skudrzyk edytował(a) ten post dnia 30.12.08 o godzinie 02:12
Tomasz Serwański

Tomasz Serwański Microsoft Dynamics
CRM - konsultant
biznesowy

Temat: curl - help!

probowalem wkleic, da sie tutaj wkleic kod? czy znow obrazek zmajstrowac? :(Tomasz Serwański edytował(a) ten post dnia 30.12.08 o godzinie 02:13
Janusz Skudrzyk

Janusz Skudrzyk Członek zarządu,
weblabs.pl

Temat: curl - help!

niech będzie obrazek

nawet code (w nawiasach kwadratowych) nie działa :/
Tomasz Serwański

Tomasz Serwański Microsoft Dynamics
CRM - konsultant
biznesowy

Temat: curl - help!


Obrazek
Janusz Skudrzyk

Janusz Skudrzyk Członek zarządu,
weblabs.pl

Temat: curl - help!

ukryte pola należy dopisać do postfields (pole lang też)
to ostatnie wygląda na sumę kontrolną, prawdopodobnie ustawiane jest cookie z nazwą tego pola (lub z identyfikatorem sesji)



function parse_response($this_response)
{
// Split response into header and body sections
list($response_headers, $response_body) = explode("\r\n\r\n", $this_response, 2);
$response_header_lines = explode("\r\n", $response_headers);

// First line of headers is the HTTP response code
$http_response_line = array_shift($response_header_lines);
if(preg_match('@^HTTP/[0-9]\.[0-9] ([0-9]{3})@',$http_response_line, $matches)) { $response_code = $matches[1]; }

// put the rest of the headers in an array
$response_header_array = array();
foreach($response_header_lines as $header_line)
{
list($header,$value) = explode(': ', $header_line, 2);
$response_header_array[$header] .= $value."\n";
}

return array("code" => $response_code, "header" => $response_header_array, "body" => $response_body);
}

funkcja pozwala przetworzyć odpowiedź i uzyskać ciasteczka:

$response = parse_response($strona);
$cookies = explode("\n", $response["header"]["Set-Cookie"]);
foreach($cookies as $this_cookie) { echo "Cookie: ".$this_cookie); }


na początek wystarczy sprawdzić z tym polem co jest na obrazku, jeśli nie zadziała, to:

1. łączymy się ze strona, pobieramy odpowiedź i ciastka
2. uzupełniamy postfields oraz wypełniamy nagłówek:

// Create the basic header
$this_header = array(
"MIME-Version: 1.0",
"Content-Type: application/x-www-form-urlencoded;charset=ISO-8859-2",
"Content-transfer-encoding: text"
);

// Add each cookie that has been returned in the response
// If cookies need to be added/deleted or value changed, then add code here
$cookies = explode("\n", $response["header"]["Set-Cookie"]);
foreach($cookies as $this_cookie) { array_push($this_header, "Cookie: ".$this_cookie); }

curl_setopt($ch, CURLOPT_HTTPHEADER, $this_header);
curl_setopt($ch, CURLOPT_HEADER, 1);

3. wykonujemy curl po raz drugi, tym razem powinno pokazać właściwą treśćJanusz Skudrzyk edytował(a) ten post dnia 30.12.08 o godzinie 02:34
Tomasz Serwański

Tomasz Serwański Microsoft Dynamics
CRM - konsultant
biznesowy

Temat: curl - help!

w miedzyczasie dodalem wszystkie pola (takze hidden) do postfields - niestety efekt znow ten sam (biala strona); co do tych robaczkow z ostatniego pola hidden - probowalem 2 wersji skryptu, z tym polem i podana wartoscia, oraz bez tego pola - nadal biala strona :(

co ciekawe, strona sie odswieza (pokazuje ekran logowania do joomli) dopoki nie wstawie do postfields wartosci '..&option=com_login&..' i/lub '..&task=login&..'; czy to sa jakies slowa kluczowe ktore cos moga psuc?
Tomasz Serwański

Tomasz Serwański Microsoft Dynamics
CRM - konsultant
biznesowy

Temat: curl - help!

Janusz, tak zebym malym rozumkiem ogarnal:

- funkcje (okienko 1) dopisac do skryptu;
- kolejny fragment kodu (okienko 2) dodac do skryptu po zdefiniowaniu $strona;
- dodac do postfields wszystkie pola zdefiniowane w obrebie , wraz z tym 'dzikim' i wartoscia jaka sie tam pokaze
- zakladac ze zadziala?Tomasz Serwański edytował(a) ten post dnia 30.12.08 o godzinie 02:40
Janusz Skudrzyk

Janusz Skudrzyk Członek zarządu,
weblabs.pl

Temat: curl - help!

Tomasz Serwański:
- funkcje (okienko 1) dopisac do skryptu;
tak
- kolejny fragment kodu (okienko 2) dodac do skryptu po zdefiniowaniu $strona;
tak, żeby zobaczyć czy ze strony idą jakieś ciastka, być może nazwa pola idzie w ciastku i nie będzie potrzeby dodatkowo kombinować
problem może pojawić się w momencie, gdy to dodatkowe pole będzie wyłącznie w "body", wtedy trzeba będzie je dodatkowo 'wyciągnąć'
- dodac do postfields wszystkie pola zdefiniowane w obrebie , wraz z tym 'dzikim' i wartoscia jaka sie tam pokaze
tak, każdy input który jest w uzyskanej treści (jedynie pola z atrybutem disabled nie są przesyłane)
- zakladac ze zadziala?
być może, oczywiście drugi curl powinien być wywołany po zamknięciu pierwszego
Szymon Perski

Szymon Perski Właściciel
PerskiMedia

Temat: curl - help!

Poza tym joomla wysyla tokeny ktore najpierw trzeba pobrac i potem przeslac, mozliwe ze sprawdza referera.

Panie Tomku jeśli jest pan zainteresowany gotowym rozwiązaniem chętnie pomogę :)

Robilem logowania na konta google, post-nuki i inne skrypty na joomle akurat nie, ale to 30 min roboty :)Szymon Perski edytował(a) ten post dnia 30.12.08 o godzinie 04:04
Tomasz Serwański

Tomasz Serwański Microsoft Dynamics
CRM - konsultant
biznesowy

Temat: curl - help!

po pracy bede kontynuowal, dam znac ze sie nie udalo :)
Janusz Skudrzyk

Janusz Skudrzyk Członek zarządu,
weblabs.pl

Temat: curl - help!

czyli się udało ?

Następna dyskusja:

curl na lokalnym serwerze




Wyślij zaproszenie do