I have my taxonomy links set to the following:

/marketplace?title=&field_isbn_value=&tid=[cat-raw]

which is intended to take the person to a view with certain variables as search filters.

except it converts the '?' character to the encoded equivalent: %3F, which screws up the post/get property of the URL. it ends up going to the wrong place :[

what can i do to resolve this? when i hover over the link, the question mark seems fine in the status bar, but when i click the link it encodes the question mark (and the other reserved characters)

the ampersand signs also get encoded. not sure how to escape them properly (if that's even possible)

THANK YOU IN ADVANCE!

Comments

rasheemo’s picture

bump

rasheemo’s picture

please? this is important

rasheemo’s picture

bump

rasheemo’s picture

bump

rasheemo’s picture

please? this is FRUSTRATING!

rasheemo’s picture

why does drupal support suck so much

rasheemo’s picture

bump

drinkdecaf’s picture

I was having the exact same issue - easiest way around I've found is to just make the links absolute, which skips drupal encoding the thing. So instead of

node/1?data=yes

Change the link to

http://mysite.com/node/1?data=yes

Not a perfect solution by any stretch, but a quick way around the encoding.

rasheemo’s picture

i tried that, but for some reason it takes the full direct link and ADDS it onto the original domain so it would look like:

http://mysite.com/http://mysite.com/node/1?data=yes

and even then it encodes all the symbols

:[

drinkdecaf’s picture

Bizarre. What version of drupal are you running? Any modules on?

rasheemo’s picture

latest version of drupal 6, i have several modules, though i dont see how they can affect this particularly.

corbacho’s picture

Something similar happened to me.

I'm using http://api.drupal.org/api/function/l with the option in l array('absolute' => TRUE) to send links to email

Finally I realize that I don't need to generate ?marketplace=383873474737

I can generate marketplace/383873474737

Instead of
$_GET['marketplace']
you can use
$_GET['q'] will catch it ... check that arg(0) is marketplace and that's all

Multiple parameters with & could be generated using more slashes?

Hope it helps someone.

vin247’s picture

drinkdecaf's solution worked for me, maybe there is a better way but this works for what I need to do, thanks!

yngens’s picture

I need question and equal marks in urls not for passing variables, but to keep legacy urls of a website, drupalized from another system. Looking into this issue...

NickWebman’s picture

dude. same problem... no solution in sight!

Aeternum’s picture

I know this is two years too late to be any help, but for anyone who gets here from google:

You need to provide another argument to l, to let it know there's a query on the link. For example:

print l("Add page", "node/add/grouppage", array('query' => array('gids_node[]' => $group->etid)));

Will link to: node/add/grouppage?gids_node[]=1518

wasid’s picture

this worked for me after 2 hours of research. thanks @Aeternum