Skocz do zawartości

[PHP + cURL] Logowanie do SEOKatalogu


artur_waw

Rekomendowane odpowiedzi

Ja bym nawet napisał coś więcej - tylko to, że coś działa nie znaczy jeszcze że potrafię powiedzieć: co, jak, dlaczego ;)

Zresztą patrząc na wkład pracy to raczej nie do mnie należy decyzja o upublicznianiu rozwiązania. Zresztą jak kogoś będzie to interesowało to ja się nie wyprowadzam z kraju i zawsze można zapytać :)

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

;)

Odnośnik do komentarza
Udostępnij na innych stronach

  • 3 tygodnie później...

Aby zalogować się na stronę, należy przesłać wymagane przez formularz dane metodą POST. Do korzystania z CURLa używam swojej prostej funkcji:

	function getUrl( $url, $headers = array(), $options = array() )
{
	$ch = curl_init( $url );

	curl_setopt( $ch, CURLOPT_RETURNTRANSFER, 1 );
	curl_setopt( $ch, CURLOPT_HEADER, 0 );

	if( !empty( $headers ) )
	{
		curl_setopt( $ch, CURLOPT_HTTPHEADER, $headers );
	}

	foreach( $options as $opt => $val )
	{
		curl_setopt( $ch, $opt, $val );
	}

	$output = curl_exec( $ch );

	if( $output === false )
	{
		throw new Exception( curl_error( $ch ) );
	}

	curl_close( $ch );

	return $output;
}

jest chcesz wysłać coś POSTem to dla parametru $options ustaw

$options = array();
$options[ CURLOPT_POST ] = 1;
$options[ CURLOPT_POSTFIELDS ] = array( 'login' => 'jakis_login', 'password' => 'jakies_haslo' );

interesuje Cię tylko nagłówek HTTP, który odeśle ci server i w którym będzie unikalne ID sesji, dzięki któremu serwer będzie Cię postrzegał jako zalogowaną osobę. Dodaj więc również opcję

$options[ CURLOPT_HEADER ] = 1;

Aby CURL zwrócił ci nagłówek odpowiedzi.

Jeśli serwis używa domyślnej nazwy dla sesji PHP (PHPSESSID) jak otrzymasz odpowiedź, użyj wyrażenia regularnego aby odczytać id sesji

preg_match( '/Set-Cookie\:\ PHPSESSID=([a-zA-Z0-9]*?);/s', $html, $m );
$phpsession = $m[1];

Mając to ID dla każdego kolejnego wywołania CURL dodaj

$headers = array()
$headers[] = sprintf( 'Cookie: PHPSESSID=%s;', $phpsession );

a serwer będzie uznawał Cię za zalogowanego użytkownika.

społeczność kupująca taniej - www.podgrzej.pl

przeceny

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