Page 1 of 1

Předání proměnné do cookie [VYŘEŠENO]

Posted: Fri Jun 05, 2009 3:28 pm
by osxfil
Zdravím, řeším takový problém. V modulu FEU mám vlastnost uživatele, nazvanou "SubId", která je pro každého uživatele jiná.
Každý uživatel se bude muset na web přihlásit. Hodnotu tohoto pole aktuálně přihlášeného uživatele bych potřeboval uložit do cookie. V té cookie je i přesměrování na jinou stránku (to funguje bez problémů) a ta stránka by si měla načíst právě tu hodnotu SubId z uložené cookie (je to něco jako skryté ověření totožnosti).
UDT pro cookie by měl vypadat nějak takhle:

Code: Select all

setcookie("SubId", $SubId, time() + 20);
header("Location: http://www.odkaz.tld");
Pokud do té cookie zadám hodnotu SubId "natvrdo", tak to funguje. Ve stránce mám pro testovací účely vložený pouze tag {setCookie}.

Zkoušel jsem to různými způsoby, naposledy takhle:

Code: Select all

{capture assign="SubId"}{$ccuser->property('SubId')}{/capture} 
{setCookie}

Re: Předání proměnné do cookie

Posted: Fri Jun 05, 2009 3:49 pm
by Radim
Co se týče práce s cookie ve smarty tak bych mrknul sem:
http://www.smarty.net/manual/en/language.variables.smarty.php

Každopádně smarty tagy {php} a {/php} by taky mohly pomoct při práci s cookie (pomocí PHP kódu).

To zadání jsem tak úplně nepochopil, proto trochu obecná odpověď.

Radim

Re: Předání proměnné do cookie

Posted: Fri Jun 05, 2009 4:40 pm
by kuzmany
Smarty kod

Code: Select all

{setCookie kukina=$ccuser->property('SubId')}
UDT

Code: Select all

setcookie("SubId", $params["kukina"], time() + 20);
header("Location: http://www.odkaz.tld");
Ale kolaciky sa medzi domenami nedaju za normalnych okolnosti prenasat to znamenaze kolacik vytvoreny na domena.tld  nebude dostupny na domena2.tld.

Ani nerozumiem tej skrytej kontrole, naco toto? Vsak to je sialene :)

Re: Předání proměnné do cookie

Posted: Fri Jun 05, 2009 8:21 pm
by osxfil
Diky za nakopnutí. Hned zítra to zkusím. Nebude to přenos mezi dvěma doménami, všechno bude na jedné doméně, ale ta odkazovaná stránka už není v CMSMS. Dělám online flash časopisy atd. http://www.bocekmedia.net a pro účely placené distribuce máme DRM server, na který se nahraje licence konkrétního časopisu a zadají se tam přístupové ID pro každého čtenáře a taky jeho oprávnění (tzn. předplacené období a přístup k některým funkcím.
V praxi to vypadá tak, že čtenář klikne na odkaz, který vede k časopisu a objeví se mu výzva k zadání čtenářského ID. ID se ověří na DRM serveru a ten povolí nebo nepovolí přístup. Kromě toho se dají taky šifrovat jednotlivé stránky, takže když se v TMP souborech prohlížeče pokusím otevřít staženou stránku, tak se objeví pouze bílá plocha bez obsahu.
Ale jeden klient trpí tak trochu paranoiou, takže to chce zabezpečit ještě víc. Princip téhle cookie spočívá v tom, že on se čtenář vlastně nedozví to svoje čtenářské ID, protože je uloženo jako vlastnost ve FEU (bez SelfRegistration, všechny údaje se buď zadají ručně nebo naimportují). A to čtenářské ID je právě ta hodnota v cookie. Cookie má platnost pár vteřin, akorát na otevření toho časopisu. Pro otevření toho časopisu se používá JavaScript, který si načte hodnotu z cookie jako čtenářské ID a pak už následuje klasické ověření platnosti na DRM serveru.
Snad jsem to vysvětlil dostatečně a díky za pomoc.