Se l'utente è ad es. in www.miapagina.it/prova.php, $_SERVER["PHP_SELF"] dovrebbe memorizzare '/prova.php', che puoi mettere in un input hidden, e poi passi alla pagina che fa il login, dopo che ha fatto il controllo usi la stringa '/prova.php' per riportare l'utente dove era prima.
Es login:
Codice PHP:
<form action="controlloLogin.php" method="POST">
<input type="text" name="user">
<input type="password" name="pass">
<input type="hidden" name="pagina" value="<?echo $_SERVER["PHP_SELF"]?>">
<input type="submit" value="vai">
</form>
e la pagina che riceve controlloLogin.php
Codice PHP:
$user=$_POST['user'];
$pass=$_POST['pass'];
$paginaCheVisitava=$_POST['pagina'];
//fai il controllo con i dati del db
//.................
//se il  login è ok però prima di altri output
header("location:[url]http://www.miosito.it[/url]".$paginaCheVisitava);
//o meglio ancora con qualche secondo di attesa ed un messaggio
header('Refresh: 3; url=http://www.miosito.it[/url]".$paginaCheVisitava);
echo '
Login effettuatoAttendereredirect in corso...'; 
ho scritto al volo senza testare, più o meno potrebbe andare però.

Ciao.