Dobry den,
pouzivam na strance generovani casti externiho obsahu pres file_get_contents();. Problem je, ze dana stranka dokaze rozpoznat, ze se na ni nevstupuje pres browser.
Napadly me tri reseni, jenze:
1) treti parametr file_get_contents(); funguje az od PHP5
2) pres cURL to taky nejde, zrejme tu na to neni libcurl
3) a ini_set('user_agent',''); je zakazan, jestli jsem dobre pochopil
Tak me zajima, zdali lze nejak nakonfigurovat specifikaci hlavicky user_agent pres .htaccess. Diky
V .htaccess můžeš nastavovat hlavičky, pokud máš mod_headers. Ten tady (alespoň na většině serverů) určitě není. Navíc se obávám, že stejně by to tvému postupu nepomohlo -- pokud se nepletu, tak hlavičky nastavné v Apachi se použijí pouze při http response.
Osobně bych to řešil přes curl nebo sockety, ovšem to zde není možné.
Mohlo by to však jít přes nastavení proměnné php v .htaccessu, v takové alternativě k ini_set():
php_value user_agent "Opera/8.51 (Windows NT 5.1; U; en)"
<HTML>mod_headers nastavují hlavičky serveru, ne vlastního "prohlížeče" na serveru. Zde na WZ jsou dvě reálné možnosti a třetí, kterou bych zvolil já:
1) PHP 5 by to mělo zvládnout. Pokud máš na svém účtu PHP 5 (zjistíš v phpinfo()), je to jasné.
2) Freezův nápad s úpravou htaccess.
(Tipuju, že v podstatě opakujeme obsah tohoto: <a href="http://tinyurl.com/2u2opc7">
www.seopher.com - How to Change Your PHP user_agent to Avoid Being Blocked When Using cURL</a>)
3) Domluvit se s majitelem toho, co "kopíruješ", na rozumném zpřístupnění třeba nějakého XML apod. (Samozřejmě nevím, co a proč a odkud načítáš, ne vždy to jde vyřešit a ne vždy se jde domluvit, že ti autor zpřístupní informace pro tvůj server a v nějakém vhodném formátu.)</HTML>
No ta uprava php_value v htaccess je presne, co jsem potreboval. Dekuji.
Nicmene to nakonec stejne neprojde dal, protoze stranka vyzaduje prihlaseni a asi se neidentifikuje ve stejne session jako jsem prihlasen. Nejak naivne jsem se domnival, ze to zavisi jen na pouziti stejneho prohlizece (pro prihlaseni na cilovy server a spusteni scriptu na moji strance).
Bude asi potreba nejak vzdalene nacist a pouzit danou session. To ani nevim jestli jde. Tedy urcite to pujde, jen nevim jestli muj mozek je schopen neco takovyho vyresit.. :)
Jen tak pro zajimavost, jakou kravinu vlastne zkousim. Nasel jsem na facebooku jednu hru a krom jineho bych chtel docilit toho, aby se "hrala sama"...
<HTML>Není to zakázáno v pravidlech hry? A vůbec, ksichtokniha... to ještě někdo používá?</HTML>
No, ne ze by to bylo doslova povoleno, ale zakazano to taky neni.
Ksichtokniha, hezke slovo. :D
Aplikace v ksichtoknize nedělají nic jiného, než že si jednoduše vezmou hodnoty z profilu. Takže základním požadavkem pro použití aplikaci je ten, aby byl uživatel přihlášen k facebooku.
Takže jednoduchý požadavek zde nepomůže. Možná si prostuduj API k facebooku a zjisti, jak by ses mohl nabourat.
Taky me napadlo takove drze reseni. Udelat primo svoji aplikaci na facebooku a spoustet script primo odtamtud a tak se teoreticky nejakymu nabouravani uplne vyhnout.
To asi nepůjde tak jednoduše. Facebook u každé aplikace vyžaduje něco jako application_secret (které má každá aplikace jiné). Tím nechci ale říct, že to nepůjde -- asi bude způsob jak to obejít.
Ale asi nejjednodušší řešení (přestože stále není příliš jednoduché) mi připadá využít samotný prohlížeč. Vytvořit si klasické html, vložíš iframe, kde bude skutečná aplikace na facebooku (většinou jsou v dalším iframu) a svou stránku obohatíš o vhodný javascriptový kód (který bude triggerovat potřebné "kliky" v aplikaci). Jestli ale bude fungovat toto netuším -- nevzpomenu si, jestli ve facebookovém javascriptu nemají náhodou automatické přesměrování, pokud je stránka zobrazena v iframe (self.document.location != top.document.location).
Bohuzel tam maji tu vychytavku s iframem.