Why is probably because you're not passing a query string to your script. Run this test script and let us know what happens:
if (!$_SERVER['QUERY_STRING']) {
echo '<form action="' . $_SERVER['PHP_SELF'] . '"method="get">';
echo '<input type="hidden" name="test" value="test" />';
echo '<input type="submit" value="submit" />';
echo '</form>';
} else {
echo $_SERVER['QUERY_STRING']."?works=yes";
}