If a namespace has spaces in its title, and + is used as the space character, then selecting such a namespace in the form on a Special page will result in a 'specified namespace does not exist' error.
This occurs because while
$_GET and
$_REQUEST are automatically
urldecoded by PHP, because the browser automatically
urlencodes them for being user editable in the address bar, the browser doesn't modify the
$_POST data in this way. Post-data is not passed through the address bar, so it need not be
urldecoded. Since the namespace was encoded in the forum using
$vault->urlencode, the following condition must be considered:
Code:
if (isset($_POST['namespace']))
{
$getns = urldecode($vbulletin->input->clean_gpc('p', 'namespace', TYPE_STR));
}
else
{
$getns = $vbulletin->input->clean_gpc('r', 'namespace', TYPE_STR);
}