Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailemVyřešeno php - file_get_contents()

Zdravím všechny, prosím mohl by mi někdo poradit? Nevím si rady s tímto:
Pomocí funkce file_get_contents() chci načíst obsah stránky, kterou poté proženu vlastním parserem. Problém je v tom, že obsah stránky je zabezpečený pomocí session, něco jako

if(!$_SESSION["logged"])
 odejdi();

Zkoušel jsem do stránky s funkcí file_get_contents() nastavit session na true, ale to nepomáhá. Nevíte někdo, jak toto obejít? Moc děkuji za každý nápad.

Předmět Autor Datum
víš co se tam přesně kontroluje? a jak se to kontroluje?
tomas.kulhanek 07.02.2012 23:17
tomas.kulhanek
Tá stránka je tvoja a na tom istom serveri? Ak áno, tak prečo sa k jej obsahu chceš dostať tak zloži…
los 07.02.2012 23:35
los
Ano, je to moje stránka na tom stejném serveru. Jedná se jen o kontrolu, zda je nastaveno session na…
Cobol 07.02.2012 23:49
Cobol
Tak použi include/include_once alebo require/require_once alebo autoload. Skrátka štandardné riešeni…
los 07.02.2012 23:53
los
No, jenže já potřebuju tu stránku mít jako string, který pak upravím a generuju zas jiný dokument :-…
Cobol 08.02.2012 00:01
Cobol
stream_context_create() už rozumím, jen nerozumím té souvislosti s tou session, která se kontroluje…
Cobol 08.02.2012 02:20
Cobol
Tak jsem to nakonec vyřešil šalamounsky, a to tak, že do stránky kterou jsem chtěl načítat jsem přid… poslední
Cobol 08.02.2012 14:57
Cobol

Tá stránka je tvoja a na tom istom serveri? Ak áno, tak prečo sa k jej obsahu chceš dostať tak zložito?

Tretí argument funkcie file_get_contents je context, pomocou ktorého môžeš definovať aj cookies (t.j. zabezpečiť, aby sa server dostal k správnej session):

$opts = array('http' => array('header'=> 'Cookie: ' . $_SERVER['HTTP_COOKIE'] . "\r\n"));
$context = stream_context_create($opts);
$file = file_get_contents('www.example.com/', false, $context);

No, jenže já potřebuju tu stránku mít jako string, který pak upravím a generuju zas jiný dokument :-) No v podstatě z obsahů stránek vytvářím jeden (word) dokument.
Pořádně nerozumím tomu stream_context_create(). Co tedy se vlastně vytváří? Když bych to aplikoval na můj případ, že tedy tam mám jeden session, jak by to vypadalo? Omlouvám se, stream_context_create slyším poprvé :-(

Tak jsem to nakonec vyřešil šalamounsky, a to tak, že do stránky kterou jsem chtěl načítat jsem přidal ještě jednu podmínku

if($_SESSION["logged"]!=true && $exportToFile!='ecfer34c48d5685a7efa03d137dc8bbde7e3')

takže do url pro file_get_contents() jsem přidal ještě www.example.com'ecfer34c48d5685a7efa03d137dc8bbde7e3'. Zdá se mi to bezpečné, za předpokladu, že nikdo nezná ten hash, který se předává přes file_get_contents(). V podstatě o něm nikdo nevído neví :-) Všem díky za nápady.

Zpět do poradny Odpovědět na původní otázku Nahoru