Thursday 12 February 2009 2:42:38 pm
Hi, I encounter a funny thing here which I don't understand at all: I have a template where, from some data passed in, I create output. Nothing uncommon so far. But, in ONE case ONLY (as far as I know now...) I get an ascii Null char in the resulting text. This is the code snipped in question:
{def $submitto=''}
{if $data._submitto|is_string()}
{set $submitto=$data._submitto}
{/if}
{def $form=concat('<form method="post" action=', $submitto|ezurl(), '>')}
$submitto is passed in as "/xxcontact/minireg"- that part works correctly. Now, this is what I get:
wget -O - https://www.whatever.com/eng/xxcontact/minireg 2>/dev/null | grep -a 'action="/eng.*minireg' | hexdump -C
00000000 20 20 3c 66 6f 72 6d 20 6d 65 74 68 6f 64 3d 22 | <form method="|
00000010 70 6f 73 74 22 20 61 63 74 69 6f 6e 3d 22 2f 65 |post" action="/e|
00000020 6e 67 2f <b>00</b> 62 73 63 6f 6e 74 61 63 74 2f 6d 69 |ng/.xxcontact/mi|
00000030 6e 69 72 65 67 22 3e 0a |nireg">.|
00000038
Notice the ascii Null before .xxcontact? Now, I can leave out the ezurl() call, then I get the URL passed in, but again with ascii Null prepended. So, my conclusion is that either the template framework or php itself is responsible. But - how do I fix this? I use basically identical approaches for the creation of action urls in about 50 other places where I never observed this...
php is version 5.1.6, Zend engine is 2.1.0 eZ Publish is version 4.0.0 (yeah, I know there is a bug fix version available...)
|