Custom Web Publishing Guide

Table Of Contents
68 FileMaker Server Advanced Custom Web Publishing Guide
The following example demonstrates how to set the value of the header. Suppose you are using a stylesheet
to output a vCard. There is a potential problem that when a browser tries to load the stylesheet page, the
browser could interpret the
.xsl file as a stylesheet rather than a vCard. If you use the header called Content-
Disposition, you can specify that there is an attachment with an extension of
.vcf.
<xsl:value-of select="fmxslt:set_header('Content-Disposition','attachment;filename=test.vcf')" />
Using the cookie extension functions
You can use the cookie extension functions to get or set cookies stored in the client’s web browser.
Notes
1 The fmxslt:get_cookie() and fmxslt:get_cookies() functions return a node-set in the following structure:
<!ELEMENT cookies (cookie)*>
<!ATTLIST cookie xmlns CDATA #FIXED "http://www.filemaker.com/xml/cookie">
<!ELEMENT cookie (#PCDATA)>
<!ATTLIST cookie name CDATA #REQUIRED>
1 The XML namespace for the cookies node-set is "http://www.filemaker.com/xml/cookie". You must declare
the namespace and provide a prefix for the namespace.
1 All of the parameter values for the fmxslt:set_cookie functions must be valid or else the web browser will
ignore the
fmxslt:set_cookie function requests.
1 For all cookie functions, the string parameters can be any length.
1 Both forms of the fmxslt:set_cookie() function require the <?xslt-cwp-buffer?> processing instruction. See
“Using content buffering” on page 63.
Example: get_cookie
The following example retrieves a cookie named preferences and its value:
<xsl:variable name="pref_cookie" select="fmxslt:get_cookie('preferences')"/>
<xsl:value-of select="concat('Cookie Name = ', $pref_cookie/fmc:cookies/fmc:cookie/@name)"/> <br/>
<xsl:value-of select="concat('Cookie Value = ', $pref_cookie/fmc:cookies/fmc:cookie)"/>
Example: set_cookie
Here is an example of how to set a cookie with all values:
<xsl:variable name="storing_cookie" select="fmxslt:set_cookie ('text1', 'text2', 1800, 'my_text', 'my.company.com')" />
Cookie extension function
Data type
returned Description
fmxslt:get_cookie(String name) node-set Returns the COOKIES node-set that has the
specified cookie name.
fmxslt:get_cookies() node-set Returns COOKIES node-set with all of the
cookies supplied by the client.
fmxslt:set_cookie(String name, String value) void Stores the specified cookie in the client’s
browser with the specified value.
fmxslt:set_cookie(String name, String value,
Number expires, String path, String domain)
void Stores the specified cookie in the client’s
browser with all of the values available for a
cookie. The Expires parameter is the number of
seconds until the cookie expires.