file_get_contents a session
7 příspěvků
Archiv diskusního fóra
Fórum je uzavřené a slouží pouze ke čtení. Některé informace mohou být zastaralé.
-
Dobry den. Chci s pouzitim file_get_contents vypsat text ze vzdaleneho serveru (resp. text ze zdrojaku), kdyz ten text jde zobrazit jen pokud se tam clovek prihlasi a klikne na odkaz. Potreboval bych nejak PHPckem se na serveru prihlasit pres promenne v adrese (jmeno a heslo znam samozrejme) a pak jeste otevrit tu druhou stranku, jenze tam uz jakoby prihlaseny nejsem - lze takhle nejak prenaset session? Pokud jste nepochopili, ctete dale... Na cizim serveru se normalne prihlasim a kliknu na Informace, coz jde jen u prihlasenych. Kdyz pouziju file_get_contents('http://www.server.cz/index.php?jmeno=123&heslo=123') file_get_contents('http://www.server.cz/index.php?informace') tak se druhy radek pokusi nacist stranku informace, ale neni tam prihlasenej, takze to nejde... musely by se tam nejak prenest informace o session a o prihlaseni...
-
Jestli ten server povoluje přenos session id v URL, zjistíš ho v jakýmkoliv odkazu v tom, co ti pošle ten přihlašovací požadavek. Řešil jsem to pro server, kterej požadoval cookies - udělal jsem to přes socket a snažil se chovat jako browser, ale tady na wz je to zakázaný.
-
A nebo možná http://cz2.php.net/manual/cs/ref.curl.php, ale to jsem nikdy nezkoušel.
-
Krab mohol by si dat sem ten zdrojak ako si to robil so socket?diky moc :o)
-
mydlo: Zdrojáky momentálně nemám, ale bylo to nějak takhle: //otevřeš spojení se serverem na portu 80 //sepíšeš požadavek $pozadavek= "POST /stranka HTTP/1.1 Host: www.server.cz Můžeš sem dát i referer Content-Type: application/x-www-form-urlencoded Content-Length: délka řetězce proměnná=hodnota&proměnná=... promenna=hodnota&prom2=hodnota2"; //jako v url //a pak píšeš jako do souboru fputs($spojeni, $pozadavek); //odpověď si přečteš taky ze souboru while (!feof($spojeni)) { $radek = fgets ($spojeni,1000); if($radek == "\r\n") break; //hlavičky končí prázdným řádkem // v jednom nebo více řádcích bude něco jako Set-Cookie: promenna=xyz123; path=něco // promenny a hodnoty si zapamatujes } //zavres spojeni //otevres ho znovu $pozadavek = "GET /stranka HTTP/1.1 Host: www.server.cz Můžeš zase referer Cookie: promenna=xyz123"; fputs($spojeni, $pozadavek); //a už by to mělo vracet správnou stránku i s hlavičkou while (!feof ($spojeni)) { $buffer = fgets($spojeni, 4096); echo $buffer; }
-
Dik, a co ma byt to $spojeni? A jeste: misto: POST /stranka HTTP/1.1 Host: www.server.cz Můžeš sem dát i referer Content-Type: application/x-www-form-urlencoded Content-Length: délka řetězce proměnná=hodnota&proměnná=... ma byt URL adresa toho prihlasovaciho skriptu, a misto: GET /stranka HTTP/1.1 Host: www.server.cz Můžeš zase referer Cookie: promenna=xyz123 url stranky, ktera ma byt zobrazena a co uz dostane session?
-
$spojeni je deskriptor, který dostaneš, když otevíráš socketové spojení $spojeni = fsockopen(...); Prvním požadavkem odesíláš vyplňený přihlašovací formulář a druhým dostaneš stránku i s HTTP hlavičkou.