En ese caso no se trata de guardarte el "referer" sino el nombre del script en el que estamos (en el que entramos directo pero no tenemos la autentificación correcta).
Es decir ..
Si tu validas a tu usuario por sesiones/cookies u otros médios en X_Script.php tipo:
Código PHP:
if (!validación){
$redir=$_SERVER['PHP_SELF'];
header ("Location: tu_formulario_login.php?redir=$redir");
exit;
}
En tu formulario de login (donde piedes tu usuario/contraseña) debes volver a propagar la variable $redir (que a este le llega desde método GET) a tu script de validación (control.php) .. En este punto lo puedes hacer con una variable en un campo hidden de tu formulario:
Código PHP:
<input type="hidden" name="redir" value="<?echo $_GET['redir']?>>
En tu script que valide ("control.php") tomas la variable "redir" (por el método que la envies la obtendras) y haces tu redireccionamiento final tipo:
Código PHP:
// validas ... y si todo OK:
header("Location: $_XXX['redir']"); // XXX = GET o POST
exit;
Si ya trabajas con sesiones o cookies .. emplea una nueva variable de sesión/cookie para llevar tu $redir en lugar de liarte propagando a mano en todo script que pasa esa variable.
Un saludo,