Külső loginos oldalról file letöltés probléma

Keresés
Hírlevél
 
ASPC#C++CSSDelphiFlashJavaJavaScriptPascalPerlPHPPythonuniPaaSVisual BasicVisual C++  »    
nyitotta: Zee, idő: 2012.07.11., moderátor: Árnyék, megoldás elfogadva: 2012.07.11. 18:24
  Értesítés változás esetén Felvétel kedvencekhez Küldés emailben

Kategóriák:Programozási nyelvek » PHP

Sorrend:
Időzóna:
Blokkméret:
Oszd meg!
Az alap gondolat hiányzik ... hogyan fogjak neki:

van egy külső általam nem szerkeszthető oldal
ide csak felhasználónév jelszóval tudok belépni
ami gondolom létrehoz egy session-t, meg egy get-es egyedi id azonositot
ezután egy linkről ami futásidőben generál egy file-t (aminek az aktuális idő a neve) szeretnék letölteni
és mindezt autómatikusan, nincs jelentősége de kb. naponta egyszer
html, php
A fenti kódban egy konkrét példát látsz bejelentkezésre.
A kapott forrásból/fejlécből kibányászod az id-t és jöhet a letöltés.
előzmény

Használj curl-t.
Az minden ilyenre jó. előzmény
Egy kis segítség authentikációra és cookie kezelésre:


function cURL($url, $header=NULL, $cookie=NULL, $p=NULL)
{
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_HEADER, $header);
    curl_setopt($ch, CURLOPT_NOBODY, $header);
    curl_setopt($ch, CURLOPT_URL, $url);
    //curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
    curl_setopt($ch, CURLOPT_COOKIE, $cookie);
    curl_setopt($ch, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    //curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
    if ($p) {
        curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
        curl_setopt($ch, CURLOPT_POST, 1);
        curl_setopt($ch, CURLOPT_POSTFIELDS, $p);
    }
    $result = curl_exec($ch);
 
    if ($result) {
        return $result;
    } else {
        return curl_error($ch);
    }
    curl_close($ch);
}
$sid = '';
$res = cURL("http://www.link.hu/login.php",true,null,"user=Józsi&pass=12345");
preg_match('%Cookie: ([^;]+);%msi',$res,$sid);
$loc = '';
preg_match('/location:\s*([^\s\n]+)/msi',$res,$loc);

$res = cURL("http://www.link.hu/valami.php",false,$sid[1],null);
//...
//Osztályban szebben mutatna, de most nem esett jól implementálni. :) Letöltésre itt találsz példát. Csak ne felejtsd el elküldeni a session azonosítót.
előzmény
A link amit küldtél azzal le tudom tölteni, de csak ha már elötte bejelentkeztem és megkaptam a getes id-t
hogy egyértelmű legyen:
login után a cimsorban:
http://www.link.hu/index.php?id=12kjg213c4fg3sy4fg3xs5
és ezt az id-t kell a letöltéshez a gethez adnom
ez a biztos
amit nem látok, hogy session hogyan működik
ezért kellene először bejelentkeznem, kiolvasnom az id-t, aztán mehet a letöltés
és ez az egész külső oldalon van, nem tudok hozzáférni, beleirni. előzmény
köszönöm előzmény
Oszd meg!