

[PHP] Problém se Smarty - přesměrování a session
Zdravím Vás,
mám 3 soubory:
soubor1.php
soubor1.tpl
skript1.php
V soubor1.tpl mám formulář a nad ním by se měla zobrazovat SESSION hláška ("Vyplňte to a to", "Formulář byl odeslán", atp.). V soubor1.php mám samozřejmě assign->display tohoto templatu a assign potřebných proměnných. Celý formulář se metodou POST odesílá do skript1.php. Ve skript1.php se překontrolují vstupní data a vytvoří se $_SESSION['hlaska'] dle správnosti údajů a pomocí header("Location: ...") se přesměruje zpět do soubor1.php a měla by se tato hláška zobrazit nad formulářem. Avšak se nezobrazí hned, ale až když stránku (soubor1.php) ručně aktualizuji. Odhaduju to na to, že Smarty to soubor zkompilovaný a načte to z cache. Cache jsem však zkoušel mazat pomocí clearCache(), zkoušel jsem také nastavit force_compile = true... ani jedna možnost však nepomůže. Děkuji mockrát
Honza
V tomhle ti pomůže debugger, pravá ruka PHP.
Možno má tú stránku nakešovanú prehliadač. Skontroluj si v ladiacom nástroji svojho prehliadača na záložke so sieťovou aktivitou, či sa vôbec tá stránka čítala zo servera. Resp. si pozri, aké hlavičky súvisiace s kešovaním ten server vrátil (Cache-Control, Expires a pod.).
Díky za odpověď. Prohlížeč stránku nakešovanou nemá, aplikace se chová stejně ve všech prohlížečích. Když mám podobnou aplikaci bez šablonovacího jazyka Smarty, jede to jak má. Tudíž bych se spíše rád zeptal, zda nevíte, jak zabezpečit znovunačítání, potažmo kompilování dané stránky ve Smarty, ve které potřebuji toto session? Díky
Problém vyřešen! Omlouvám se za obtěžování.
Řešení:
require_once(APPURL.'/smartyconfig.php');
$smarty = new Smarty;
$smarty->force_compile = true;
Force compile jsem špatně používal - vkládá se přímo za vytvoření instance třídy. Pardon a díky
Honza