Redirection vers la page précédente après la connexion
Lors de la connexion à un site Web, il est souvent pratique d'être redirigé vers la page que l'utilisateur consultait avant de se connecter. Cette question explore un problème de code où les utilisateurs sont redirigés vers index.php au lieu de la page prévue.
Dans l'exemple de code fourni, le script login-check.php détermine l'état de connexion et envoie un redirigez le paramètre (p) vers la page login.php. Cependant, au lieu de renvoyer les utilisateurs vers la page souhaitée, il les redirige vers index.php.
Pour résoudre ce problème, la solution suivante est proposée :
-
Passer la page actuelle de l'utilisateur en tant que chaîne de requête :
- Modifiez le formulaire de connexion pour inclure un champ de saisie masqué qui stocke la page actuelle de l'utilisateur. Cela peut être fait en passant le $_SERVER['REQUEST_URI'] dans le script login.php.
- Par exemple, si un utilisateur lit un article (comment.php?articleid=17) et tente de quitter un commentaire, l'URL serait modifiée comme :
login.php?location=comment.php?articleid=17
-
Gérer la chaîne de requête "Emplacement" dans login-check.php :
- Dans le script login-check.php, vérifiez si le $_POST['location'] est renseigné. Si tel est le cas, stockez-le dans une variable $redirect.
-
Redirection basée sur le statut de connexion et l'emplacement :
- Si la connexion réussit, vérifiez si une URL de redirection est disponible dans $redirect. Si tel est le cas, redirigez l'utilisateur vers cette page. Sinon, redirigez-les vers index.php.
- Si la connexion échoue ou si l'utilisateur est déjà connecté, gérez les messages d'erreur appropriés ou redirigez si nécessaire.
-
Valider l'URL de redirection :
Il est important de valider la valeur $_GET['location'] avant de rediriger l'utilisateur pour s'assurer qu'il ne tente pas d'accéder à des URL malveillantes.
-
Encoder Chaîne de requête :
Utilisez le code urlen lors de la transmission d'URL en tant que paramètres $_GET pour encoder correctement les caractères spéciaux.
En implémentant ces modifications, les utilisateurs seront redirigés avec succès vers la page qu'ils consultaient précédemment. après vous être connecté, garantissant une expérience utilisateur transparente.
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