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
Mary-Kate Olsenoriginal
2024-11-02 04:47:02344parcourir

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>

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>

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>

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>

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!

Déclaration:
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