Autor Zpráva
4li1985
Profil
Zdravim.

Potrebujem sa pomocou funkcie file_get_contents() dostat k zdrojovemu kodu stranky, ktora je dostupne len po prihlaseni. Da sa cez PHP prihlasit na stranku (ak poznam login/password)?

Dakujem za kazdu radu a pokojne sviatky prajem! :)


Jedna sa o tuto stranku. Ale vidim ze tam je aj ukryta captcha v zdrojovom kode formulara, takze neviem ci je to mozne.

members.onlytease.com
Keeehi
Profil
4li1985:
Da sa cez PHP prihlasit na stranku (ak poznam login/password)?
Dá. Je to ovšem na několik kroků. Nejdříve musíš poslat POST požadavek s přihlašovacími údaji. Z odpovědi z cookie si vytáhnout seesion ID a to pak posílat v dalších požadavcích.

Jak pomocí file_get_contents poslat POST požadavek? Jako třetí parametr přijímá tato funkce kontext. Ten se dá vytvořit pomocí funkce stream_context_creat kde si můžeš nadefinovat parametry spojení.
Já osobně preferuji knihovnu curl. Ale obě možnosti by měly být víceméně zaměnitelné. Jde pak spíš jen o to, co se ti lépe používá.
4li1985
Profil
Keeehi:
Pouzil som CURL kod ktory som nasiel, ale nefunguje to. Vedel by si ma naviest?

Taktiez som si vsimol, ze v zdrojovom kode formulara maju aj captcha, ale clovek zadava len username a password, ziadne overovanie, tak neviem ci je to funkcne.


$username = 'xxxxxx';
$password = 'xxxxxx';
$loginUrl = 'https://members.onlytease.com/';

//init curl
$ch = curl_init();

//Set the URL to work with
curl_setopt($ch, CURLOPT_URL, $loginUrl);

// ENABLE HTTP POST
curl_setopt($ch, CURLOPT_POST, 1);

//Set the post parameters
curl_setopt($ch, CURLOPT_POSTFIELDS, 'uid='.$username.'&pwd='.$password);

//Handle cookies for the login
curl_setopt($ch, CURLOPT_COOKIEJAR, 'cookie.txt');

//Setting CURLOPT_RETURNTRANSFER variable to 1 will force cURL
//not to print out the results of its query.
//Instead, it will return the results as a string return value
//from curl_exec() instead of the usual true/false.
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

//execute the request (the login)
$store = curl_exec($ch);

//the login is now done and you can continue to get the
//protected content.

//set the protected URL
curl_setopt($ch, CURLOPT_URL, 'https://members.onlytease.com/gallery/ot/24238');

//execute the request
$content = curl_exec($ch);

curl_close($ch);

echo file_get_contents($content);
4li1985
Profil
Uz som to vyriesil.

Tento kod funguje. Netreba zabudnut aby boli POSTnute vsetky premenne z formularu.
thisinterestsme.com/php-login-to-website-with-curl

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0