Maison > développement back-end > tutoriel php > Comment rediriger les utilisateurs vers la page précédente après la connexion ?

Comment rediriger les utilisateurs vers la page précédente après la connexion ?

Mary-Kate Olsen
Libérer: 2024-11-02 04:47:02
original
339 Les gens l'ont consulté

How to Redirect Users Back to the Previous Page After Login?

Redirection vers la page précédente après la connexion

Lorsqu'un utilisateur se connecte à un site Web, il est souvent souhaitable de le rediriger vers la page sur laquelle il consultaient avant de se connecter. Cela garantit une expérience de navigation transparente et permet aux utilisateurs de poursuivre leurs tâches.

Pour réaliser cette redirection, une approche courante consiste à transmettre l'URL de la page actuelle de l'utilisateur en tant que paramètre de chaîne de requête dans le formulaire de connexion. Par exemple :

<code class="php">header("Location:login.php?location=" . urlencode($_SERVER['REQUEST_URI']));</code>
Copier après la connexion

Ce code ajoute un paramètre "location" à l'URL de la page de connexion. La valeur de ce paramètre est l'URL de la page actuelle, encodée pour garantir sa compatibilité avec les paramètres d'URL.

Dans le formulaire de connexion, ajoutez un champ de saisie masqué pour stocker le paramètre "emplacement" :

<code class="php">echo '<input type="hidden" name="location" value="';
if (isset($_GET['location'])) {
    echo htmlspecialchars($_GET['location']);
}
echo '" />';</code>
Copier après la connexion

Ce champ de saisie sera renseigné lors de la soumission du formulaire de connexion.

Dans le script login-check.php, vérifiez si le paramètre "location" est présent dans les données POST. Si tel est le cas, stockez sa valeur dans une variable $redirect :

<code class="php">$redirect = NULL;
if ($_POST['location'] != '') {
    $redirect = $_POST['location'];
}</code>
Copier après la connexion

Si la connexion réussit, redirigez l'utilisateur vers l'URL de redirection $ au lieu de la destination par défaut (par exemple, "index.php") :

<code class="php">if (isset($redirect)) {
    header("Location:" . $redirect);
} else {
    header("Location:login.php?p=3");
}</code>
Copier après la connexion

Considérations de sécurité

Il est important de valider le paramètre $_GET['location'] avant de rediriger l'utilisateur. Cela empêche les utilisateurs malveillants de rediriger les utilisateurs vers des URL nuisibles. Une façon de valider le paramètre est de vérifier s'il commence par le nom de domaine du site Web.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal