Autor Zpráva
Pop
Profil *
Zdravím Vás.
Chtěl bych se naučit cURL, ale anglické tutoriály nejsou moje silná stránka a českých jsem moc nenašel. Tak se učím zkoušením různých okomentovaných skriptů. Teď se chci zkusit přihlásit na stránku a tam aby přešla na odkaz, ale jako přihlášená. Přes Tamper Data jsem si zjistil jaké POST se mimo emailu a hesla posílají. Přišel jsem na POST send, který musí být "Přihlásit". Zkouším skript nalezený zde v diskusi (danému uživateli fungoval).
<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch, CURLOPT_COOKIEJAR, "/test.txt"); // Tady nastavím, kde se bude cookies ukládat
curl_setopt($ch, CURLOPT_URL,"http://memfun.com/signin"); // adresa formuláře
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, "username=xxx@xxx.cz&password=xxx&send=P%C5%99ihl%C3%A1sit"); // Přihlásím se přes post
 
echo curl_exec ($ch); // Tohle funguje. Zobrazí se mi stránka, která by se zobrazila pro přihlášeného uživatele

?>
Jediný problém který mě napadl, že by mohl být je v send. Zkoušel jsem zadat tak jak je v kódu, i jako "Přihlásit".

Předem Vám děkuji, Pop.
Pop
Profil *
Hm .. Koukám, že jsem zapomněl dát pryč ten poslední komentář. Na ten prosím neberte ohled :)

Moderátor panther: Odmazáno přebytečné trojemko z „hm“.
Keeehi
Profil
Zkuse to takto:
$ch = curl_init();
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch, CURLOPT_COOKIEJAR, __DIR__."/test.txt"); // Tady nastavím, kde se bude cookies ukládat
curl_setopt($ch, CURLOPT_URL,"http://memfun.com/signin"); // adresa formuláře
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, array("username"=>"xxx@xxx.cz","password"=>"xxx","send"=>"Přihlásit"));
 
echo curl_exec ($ch);

Pokud to nepomůže, nevyžaduje stránka třeba ještě něco? Jako je třeba referer nebo user_agent?
Pop
Profil *
Tak bohužel nefunguje ani takto.
<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch, CURLOPT_REFERER, 'http://www.google.com');
curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.1.2) Gecko/20090729 Firefox/3.5.2 GTB5');
curl_setopt($ch, CURLOPT_COOKIEJAR, "/test.txt"); // Tady nastavím, kde se bude cookies ukládat
curl_setopt($ch, CURLOPT_URL,"http://xx.com/signin"); // adresa formuláře
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, array("username"=>"xx@xx.com","password"=>"xx","send"=>"Přihlásit")); // Přihlásím se přes post
 
echo curl_exec ($ch); // Tohle nefunguje. Zobrazí se mi stránka, která by se zobrazila pro nepřihlášeného uživatele

?>

A navíc se mi přestalo načítat CSS, což by mi až tak nevadilo, kdyby se to přihlásilo.
Do souboru s COOKIES se mi uložilo pod názvem web. stránky FALSE / FALSE a PHPSESSID , na druhý řádek prohlížeč.
Keeehi
Profil
Když už, tak referer by měla být adresa přihlašovacího formuláře, tedy http://memfun.com/signin.
Přihlašovací adresa, kam by měl požadavek směřovat by měla být http://memfun.com/signin?do=signIn-submit. To do vypadá docela důležitě a neřekl bych, že je možné ho vynechat. To spíš nebude potřeba ten referer.
Pop
Profil *
To zní dost logicky :). Už to funguje, jen jsem místo test.txt musel použít cookie.txt. Pak už to fungovalo. No nic, jdu zkoušet další přihlašovací formuláře, ať si to opakuji a třeba už to jednou budu umět levou zadní.
Děkuji Keeehi.
Keeehi
Profil
Pop:
Osobně, když se někam snažím přihlásit, tak si zjistím, co všechno prohlížeč odesílá a to taky odesílám (většinou: post data, get data, referer, cookies, user_agent), a když se mi to podaří, tak ořezávám a zjišťuji, co není potřeba.

Pokud chcete něco těžšího, zkuste se přihlásit do emailu na seznam.
Pop
Profil *
To zní pěkně, to určitě zkusím :).
Děkuji

Vaše odpověď

Mohlo by se hodit

Odkud se sem odkazuje


Prosím používejte diakritiku a interpunkci.

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