Я пишу html-код формы с помощью php-скрипта
вот
<?php $problem_code="STR"; echo '<form name="submit-button" action="/codejudge/submit.php?id='.$problem_code.'">'; echo '<button type="submit" >Submit</button>'; echo "</form>"; ?> 
  Но после отправки URL- localhost/codejudge/submit.php выглядят как localhost/codejudge/submit.php ?  но это должно быть как localhost/codejudge/submit.php?id=STR 
  Если форма is method="GET" (которая по умолчанию ), как она есть, то, отправив ее, будет удалена существующая строка запроса в действии. 
Вместо этого храните данные в скрытом входе.
 <?php $problem_code="STR"; ?> <form name="submit-button" action="/codejudge/submit.php"> <input type="hidden" name="id" value="<?php echo htmlspecialchars($problem_code); ?>"> <button type="submit">Submit</button> </form> 
Вы должны указать метод формы submit.
 $problem_code="STR"; echo '<form method=post name="submit-button" action="/codejudge/submit.php?id='.$problem_code.'">'; echo '<button type="submit" >Submit</button>'; echo "</form>";