Reindirizza a utente della pagina che cercava di accedere dopo aver effettuato l'accesso

Ho letto un po 'per trovare la risposta senza troppa fortuna.

Ho un sito in cui i membri possono navigare nel sito in modo anonimo ma alcune pagine sono limitate. I membri vengono reindirizzati a una pagina di accesso dopo aver fatto clic su un collegamento che richiede loro di accedere per visualizzare.

Il problema che sto affrontando è che non so come redirect il membro alla pagina che stavano cercando di get una volta effettuato l'accesso.

Hanno provato a raggiungere /profile.phtml, li ha inviati a /login.phtml, ora quando si collegano, voglio che vengano inviati a /profile.phtml perché è lì che hanno fatto clic per arrivare. Se hanno fatto clic su /album.phtml, voglio che vengano inviati a /album.phtml dopo il login.

Qualcuno può aiutare? In qualche modo memorizzo l'URL in una session?

Molto apprezzato.

Appena prima di rendere l' header("Location:") chiama a redirect, memorizza la pagina in cui si trova attualmente in $_SESSION['redirect_to'] . Dopo aver effettuato correttamente il login, effettua un'altra chiamata header() per redirect nuovamente alla pagina originale e rimuovere la variabile di session in modo che non venga riutilizzata accidentalmente da nessuna parte.

 $_SESSION['redirect_to'] = $_SERVER['REQUEST_URI']; header("Location: http://example.com/login.php"); exit(); // On successful login $redirect = $_SESSION['redirect_to']; // unset the session var unset($_SESSION['redirect_to']); header("Location: http://example.com/$redirect"); exit(); 

Puoi benissimo usare una variabile di session come suggeriscono altre persone. Tuttavia, preferirei fare affidamento su HTTP_REFFERER. Lo svantaggio qui non è che each browser invii un referrer, ma la maggior parte dei browser principali lo fa. Fa parte dello standard HTTP e penso che sia abbastanza buono. Attaccalo nel tuo script di accesso.

 if(!empty($_SERVER['HTTP_REFERER'])) { header('Location: '.$_SERVER['HTTP_REFERER']); }