Tedka mu odesilam pres post dalsi prvek, pri chbynem prihlaseni jiz vyhodi hlasku s chybou, pri zadani spravnych udaju se vsak nic nezmeni :-(
Příspěvky odeslané z IP adresy 89.176.146.–
v tom hornim to ani delku nechce, ale pri getovani pres file_get_context to Length vyzaduje striktne
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 ..
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);