<html><head></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 13px/normal 'Andale Mono'; ">I'm trying to pass information from page to page via parameters the URL and links that read that information, but it doesn't always work as I'd expect.&nbsp;</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 13px/normal 'Andale Mono'; min-height: 15px; "><br></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 13px/normal 'Andale Mono'; ">For example, in the URL I have: ?n=mypage?s=mystring</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 13px/normal 'Andale Mono'; min-height: 15px; "><br></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 13px/normal 'Andale Mono'; ">In mypage's markup I have (using the httpvariables recipe): [[{$FullName}?s={$?s}|{$?s}]]</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 13px/normal 'Andale Mono'; min-height: 15px; "><br></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 13px/normal 'Andale Mono'; ">Notice how the s parameter in the URL is used as part of the URL in the link - I'm thus passing the information. This&nbsp;works fine if mystring is "plaintext", but fails if I have text such as "{=$Title}".</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 13px/normal 'Andale Mono'; min-height: 15px; "><br></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 13px/normal 'Andale Mono'; ">I suspect characters such as "{", "=", and "}" break the link. In an attempt to get around this, I created a directive to return a url-safe value, getting the value myself from the url parameter:</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 13px/normal 'Andale Mono'; min-height: 15px; "><br></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 13px/normal 'Andale Mono'; ">Markup('urlval', 'fulltext',</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 13px/normal 'Andale Mono'; ">&nbsp; '/\\(:urlval (.*?):\\)/e',</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 13px/normal 'Andale Mono'; ">&nbsp; "urlval('$1')");&nbsp; &nbsp;</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 13px/normal 'Andale Mono'; ">function urlval($key)</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 13px/normal 'Andale Mono'; ">{</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 13px/normal 'Andale Mono'; ">&nbsp;&nbsp; $val = $_GET[$key]; &nbsp;</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 13px/normal 'Andale Mono'; ">&nbsp;&nbsp; $val = str_replace("{", '%7B', $val);</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 13px/normal 'Andale Mono'; ">&nbsp;&nbsp; $val = str_replace("}", '%7D', $val);</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 13px/normal 'Andale Mono'; ">&nbsp;&nbsp; return PUE(str_replace("=", '%3D', $val));</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 13px/normal 'Andale Mono'; ">}</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 13px/normal 'Andale Mono'; min-height: 15px; "><br></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 13px/normal 'Andale Mono'; ">Then I changed the markup to [[{$FullName}?s=(:urlsafe s:)|{$?s}]]</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 13px/normal 'Andale Mono'; min-height: 15px; "><br></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 13px/normal 'Andale Mono'; ">But it still fails! I'm not sure why.&nbsp;</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 13px/normal 'Andale Mono'; "><br></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 13px/normal 'Andale Mono'; ">What's puzzling is that if my function echoes the text that the directive is about to return, and I copy that echoed text directly into the markup, replacing the directive, the markup works.</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 13px/normal 'Andale Mono'; min-height: 15px; "><br></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 13px/normal 'Andale Mono'; ">Any suggestions on how to make this work?</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 13px/normal 'Andale Mono'; min-height: 15px; "><br></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 13px/normal 'Andale Mono'; ">Randy</div></body></html>