Вы также можете попробовать ...
start_session();
$_SESSION[destination] = strip_tags($_GET[destination]);
.. в отличие от вызова переменной как скрытого поля. Затем выполните проверки на POST (какие функции проверки вам нужны), например,
if ($_SESSION[destination] !='' || empty($_SESSION[destination]) && !is_numeric($_SESSION[destination])){
header('Location:'.$_SESSION[destination]);
}