WNC blog
o webu i skautingu

Problém s nette Picasa Web Uploader

8. 12. 2009 14:22 | PHP

Linkuj!

Měl jsem jeden technický problém. Pokouším se pomocí nette implementovat fuknčnost pro upload fotek z Picasy pomocí Picasa Web Uploader API. Ve stručnosti to funguje tak, že Picasa otevře ve svém okně svůj vlastní minibrowser a načte zadanou URL. Navíc předá pomocí POST parametr, obsahující seznam nahrávaných fotografií ve formátu RSS. Na základě tohoto parametru vyrenderujete formulář, po jehož odeslání se fotografii pošlou přes POST na váš server.

Aby toto šlo provést, obsahuje Picasí minibrowser jednu zvláštní funkcionalitu a to tu, že input definovaný jako

<input type="hidden" name="http://localhost:1234/picture123.jpg" />

bude zpracován tak, že se obsah příslušného souboru pošle jako součást POST požadavku.

Kde je problém?

Vše funguje tak jak má až na jednu vyjímku. Při zpracování závěrečného formuláře se náhle ztratí všechna session data. Pátral jsem po příčině a dospěl jsem k závěru, že na vině je náhlá změna User-agent informace v hlavičce požadavku, kterou nette vyhodnotí jako podvrh a session smaže.

Řešením je v nette zakázat kontrolu agenta. Do bootstrapu přidejte následující podmníku

//Zabezpečení Galerie
if (strpos(Environment::getHttpRequest()->getHeader('User-Agent'), 'Picasa') !== null) {
   Environment::getSession()->verificationKeyGenerator = null;
}

Žádné komentáře »

Zatím nemáte žádné komentáře.

RSS komentářů k tomuto příspěvku.

Napsat komentář

Spam Protection by WP-SpamFree

© 2006 Vojtěch Brzek; Všechna práva vyhrazena

Kontakt | Prohlášení o přístupnosti | RSS Feed