Petr Bielak
Petr Bielak

Reputation: 653

PHP "&" character in $_GET variable issue

How can I put '&' symbol to URL GET variable so it is part of string? The problem is it always split the string to next variable.

How can I make this work?

localhost/test.php?variable='jeans&shirts'    // so it executes it like a string

<?php

require "connect.php";

$variable = $_GET['variable'];

echo $variable;

?>

output is 'jeans'

instead of 'jeans&shirts'

Upvotes: 4

Views: 7123

Answers (1)

Rasclatt
Rasclatt

Reputation: 12505

You will want to urlencode() your string:

// Your link would look like this:
'localhost/test.php?variable='.urlencode('jeans&shirts');

When you want to use it, you would decode it:

echo $variable = urldecode($_GET['variable']);

ENCODE: http://php.net/manual/en/function.urlencode.php

DECODE: http://php.net/manual/en/function.urldecode.php


EDIT: To test write this:

echo $url = 'localhost/test.php?variable='.urlencode('jeans&shirts');
echo '<br />';
echo urldecode($url);

Your result would be:

// Encoded
localhost/test.php?variable=jeans%26shirts
// Decoded
localhost/test.php?variable=jeans&shirts

Upvotes: 10

Related Questions