Well... the statements are not in the same file but in two different files. This are the statements, the <dtml-call FSSession> is in the standard_html_header. Method list_products: <dtml-var standard_html_header> <dtml-unless "FSSession.has_key('carrello')"> <dtml-call "FSSession.set('carrello',{})"> </dtml-unless> <form action="aggiungi_prodotto" name="carrello" method="get" target="Carrello"> <input type="hidden" name="ID" value="<dtml-if "FSSession.has_key('ID')"><dtml-call "FSSession['ID']+1"><dtml-else>1</dtml-if>"> <input type="hidden" name="codice_famiglia" value="<dtml-var cod_prod>"> <input type="hidden" name="codice_prodotto" value="<dtml-var cod_ident>"> <input type="hidden" name="nome_prodotto" value="<dtml-var nome_prod_it>"> <input type="hidden" name="prezzo" value="<dtml-var prez_lire>"> <input type="hidden" name="quantita_prodotto" value="1"> <input type="image" name="acquista" value="acquista" src="/ecom/images/freccia2.jpg" border="0"> </form> <dtml-var standard-html-footer> Method aggiungi_prodotto: <dtml-var standard_html_header> <dtml-var "REQUEST.form"><br> ##### CHECK It prints out fine the form dictionary!! <dtml-in "REQUEST.form.items()"> <dtml-var sequence-item> </dtml-in> ##### CHECK It prints out fine the form variable!! <dtml-call "FSSession['carrello'].update(REQUEST.form)"> <br> <dtml-var ID> <dtml-var codice_famiglia> <dtml-var codice_prodotto> <dtml-var nome_prodotto> <dtml-var prezzo> <dtml-var quantita_prodotto> #### Them works fine!! <br> <dtml-var "FSSession('carrello')"><br> #### It prints out "None" <dtml-var standard_html_footer> The FSSession is in the same folder of my two methods, may be this a problem? I tried out the code in a single page and it works fine if you limit to create the variable 'carrello' in the FSSession. I checked the session file and it contains : ------cut here---- (dp1 S'carrello' p2 (ds. ---- cut here------ The problem is when i try to update the variable 'carrello' with something. I tryed the code you gave to me and it works so i think that the problem is that i initialize the variable in a method and update it in another one. Probably the second method point to a different session file than the first. Well thank you for help, for now i will make all in one method and of you have some ideas to solve it it will be appreciated. Bye. Marcello Hung Jung Lu wrote:
--- In zope@egroups.com, Marcello Lupo <lupo@a...> wrote:
and macically i obtain the same error. this is the code i used: <dtml-call FSSession> <dtml-unless "FSSession.has_key('cart')"> <dtml-call "FSSession.set('cart',{})"> </dtml-unless>
<dtml-call "FSSession['carrello'].update(REQUEST.form)">
I have tried your code with 'cart' everywhere, and it worked just fine. Can you print out the form variables? Are all the statements inside the same DTML file? It really works fine. Also, make sure that FSSession is in a parent folder of your DTML method. (Root folder is usually a good idea.) Is your machine cookie-enabled?
==================================================== <dtml-var standard_html_header> <dtml-call FSSession> <dtml-unless "FSSession.has_key('cart')"> <dtml-call "FSSession.set('cart',{})"> </dtml-unless> <dtml-call "FSSession['cart'].update(REQUEST.form)"> <dtml-var "FSSession['cart']"> <dtml-var standard_html_footer> ====================================================
If you still have problems, you can try SQLSession or HappySession. For beginners I would recommend HappySession so you don't need to worry about the details of FSSession or SQLSession.
Download HappySession from http://www.zope.org/Members/hungjunglu/Products/HappySession
Add an HappySession instance in your Zope hierarchy. Then try:
==================================================== <dtml-var standard_html_header> <dtml-unless "SESSION.has_key('cart')"> <dtml-call "SESSION.set('cart',{})"> </dtml-unless> <dtml-call "SESSION['cart'].update(REQUEST.form)"> <dtml-var "SESSION['cart']"> <dtml-var standard_html_footer> ====================================================
regards,
Hung Jung
________________________________________________________________________ Get Your Private, Free E-mail from MSN Hotmail at http://www.hotmail.com