Několik hodin googlení a pracování, ale bohužel ke správnému výsledku jsem se nedostal ...
Kód by měl udělat to, že se na stránkách přihlásí, a vrátí mi html kód stránek po přihlášení. Později to chci udělat univerzálně, nyní jsem zvolil například server uloz.to.
Problém je, že ani do první části kódu se nedostanou proměnné přes POST.
Prosim o radu, zejmena tedy s prvni casti, proc nedojde k prenosu promennych POSTEM. Nevypise totiz ani chybne prihlaseni ..
Predem dekuji
Zde je kód:
$url = parse_url('http://www.uloz.to/nastaveni/?do=authForm-submit');
$url['query']=isset($url['query'])?$url['query']:'';
$context = stream_context_create(array(
'http' => array(
'method' => 'POST',
'header' => "Content-Type: application/x-www-form-urlencoded\r\nContent-Length: ".strlen($url['query'])."\r\n",
'content' => http_build_query(array(
'username' => 'uzivatelske_jmeno',
'password' => 'heslo',
'login' => 'Přihlásit')
)
)
));
$fp = fopen("http://www.uloz.to/nastaveni/?do=authForm-submit", "r",0, $context);
// Zde se vypise stranka po prihlaseni pro vziti PHPSESSID v tomto pripade ULOZTOSESSID. Bohuzel se tak nestane.
$meta_data = stream_get_meta_data($fp);
fclose($fp);
// narychlo udelane prevzeti SESSID provizorne
$st1=explode('ULOZTOSESSID=',$meta_data["wrapper_data"][3]);
$st2=explode('; ',$st1[1]);
$SSID=$st2[0];
$url = parse_url('http://www.u l o z . t o/nastaveni/');
$url['query']=isset($url['query'])?$url['query']:'';
// Zde by melo dojit k vypsani stranky s novym ULOZTOSESSID, kdyz vsak nedoslo v predchozim kroku k prihlaseni, tak jsou stranky samozrejme stejne.
$context1 = stream_context_create(array(
'http' => array(
'method' => "POST",
'header' => "Cookie: ULOZTOSESSID=".$SSID."\r\nContent-Type: application/x-www-form-urlencoded\r\nContent-Length: ".strlen($url['query'])."\r\n"
)
));
echo $vystup = file_get_contents('http://www.uloz.to/nastaveni/', false, $context1);
Fórum › PHP
Nacteni kodu cizich stranek po prihlaseni na nich
nejak mi neni jasny to:
.strlen($url['query'])."\r\n",
'content' => http_build_query(array(
'username' => 'uzivatelske_jmeno',
'password' => 'heslo',
'login' => 'Přihlásit')
content-length je delka toho co teprve vytvaris az jako nasledujici... jeste tam pouzijes url['query'] ktery s tim nic spolecneho zda se nema
To KIIV :
no byl jsem nervni protoze to porad rvalo, ze jsem mu do headeru neodeslal delku, tak jsem to pajcnul z postupu na php.net.
Pak jsem prisel na to, ze chyba je jinde, jj opravim to na delku kontextu.
Ale nemyslim si ze by to mela byt ta pricina chybneho postu ..
Zjistit počet nových příspěvků
Přidej příspěvek
Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!
Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku
×Vložení zdrojáku
×Vložení obrázku
×Vložení videa
Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
Uživatelé prohlížející si toto vlákno
Uživatelé on-line: 0 registrovaných, 52 hostů
Podobná vlákna
Vymazaní Cookie a znovu nacteni browseru bez nich — založil Mutagen
Vlozeni cizeho kodu do stranek — založil Ruda
Načtení kódu z externího souboru v C++ — založil mateo
Načtení html kódu do proměnné — založil Randufád
Načtení zdrojového kodu stránky do proměnné — založil kokos
Moderátoři diskuze