Сессия ColdFusion

Я создаю сессионную корзину для покупок с платформой CFWheels 1.1.8. У меня странная проблема, когда сеанс ColdFusion 9 не сохраняется. Я провел бесчисленные часы проверки и двойной проверки моего кода. Я надеюсь, что свежий взгляд может определить, что я пропустил. Ниже приведена упрощенная версия моего кода. Любое предложение будет с благодарностью.

конфиг / app.cfm

<cfscript>
    this.name = hash(getDirectoryFromPath(getCurrentTemplatePath())
                  , "SHA-256");   
    this.applicationTimeout = createTimeSpan(0, 2, 0, 0);
    this.loginStorage = "session";
    this.sessionManagement = true;
    this.sessionTimeout = createTimeSpan(0, 1, 0, 0);
    this.setClientCookies = false; 
    this.setDomainCookes = false;
</cfscript>

События / onRequestStart.cfm

<cfscript>
   if (! StructKeyExists(session, "cart")){
       session.cart = arrayNew(1);
   }
</cfscript>

Контроллеры / Cart.cfc

<cfcomponent extends="Controller">

   <cffunction name="index">    
   </cffunction>

   <cffunction name="create">
       <cfset  arrayAppend(session.cart, structNew())>
       <cfset index = arrayLen(session.cart)>
       <cfset session.cart[index].title = "Product Name">
       <cfset session.cart[index].quantity = "1">
       <!--- 
           this return the expect cart array with product. 
           The item disappears once it gets redirected to the index page 
       --->
       <cfdump var="#session.cart#" abort>

       <cfset redirectTo(action="index")>
    </cffunction>
</cfcomponent>  

Views / корзина /index.cfm

<!--- this return an empty array (same in all other web page)--->
<cfdump var="#session.cart#">

2 ответа

Изменение setClientCookies=true просто использует куки для отслеживания сеанса. Чтобы использовать управление сеансом без файлов cookie, необходимо установить sessionTimout с помощью application.cfm или onSessionStart с помощью Application.cfc. Если вы хотите, чтобы он работал правильно, или для тех, кто наткнулся на этот пост, я включил несколько ссылок. Бен делает большую работу, объясняя Application.cfc на примере.

Бенс Учебник

Я получил его на работу, комментируя (this.setClientCookies = false;) в config/app.cfm.

Другие вопросы по тегам