[Zope] Name error cookie check
Dieter Maurer
dieter@handshake.de
Fri, 29 Mar 2002 20:57:53 +0100
Nico de Boer writes:
> Hai all,
>
> I'm having a problem with a site. I want to check for user agent, and
> if the visitor uses MSIE, Netscape or Mozilla set a cookie
> 'showflash'. This is for the flash site. The other user agents have to
> go to the html-site. This is my code:
>
> <dtml-call "REQUEST.set('ua',HTTP_USER_AGENT)">
> <dtml-if "(_.string.find(ua,'Mozilla')<0 and _.string.find(ua,'Netscape')<0 and _.string.find(ua,'MSIE')<0) or showflash">
> <dtml-var standard_html_header><dtml-var main><dtml-var standard_html_footer>
> <dtml-else>
> <dtml-call "RESPONSE.setCookie('showflash','true',path='/')">
> <dtml-call "RESPONSE.redirect('/flash/')">
> </dtml-if>
>
> But the first time someone visits the site, there is no cookie set. So
> I get a name error. Can anyone solve my problem?
Several alternatives:
* <dtml-unless showflash><dtml-call "REQUEST.set('showflash',0)"></dtml-unless>
* "(_.has_key('showflash') and showflash)" rather than "showflash" alone
* ...
Dieter