Dans CodeIgniter 3, pour rediriger vers la page précédente, le plus concis est la syntaxe suivante :
redirect($_SERVER['HTTP_REFERER']);
Pour rediriger vers la page précédente avec CodeIgniter 3, vous pouvez utiliser plusieurs méthodes.
$_SERVER['HTTP_REFERER']
Dans CodeIgniter 3, pour rediriger vers la page précédente, vous pouvez utiliser la fonction native de PHP $_SERVER['HTTP_REFERER']
qui contient l'URL de la page précédente visitée par l'utilisateur.
Voici comment procéder :
public function some_function()
{
// Rediriger vers la page précédente
if (isset($_SERVER['HTTP_REFERER'])) {
redirect($_SERVER['HTTP_REFERER']);
} else {
// Si l'URL précédente n'est pas disponible, rediriger vers une page par défaut
redirect('default_controller');
}
}
Explications :
$_SERVER['HTTP_REFERER']
: Contient l'URL de la page précédente. Cependant, cela dépend du fait que le navigateur de l'utilisateur envoie cette information (il n'est pas garanti que cela fonctionne toujours).redirect()
: Fonction native de CodeIgniter utilisée pour effectuer une redirection.user_agent
Il est aussi possible d'utiliser la bibliothèque user_agent :
$this->load->library('user_agent');
if ($this->agent->is_referral())
{
echo $this->agent->referrer();
}
Cette deuxième option a l'avantage de vérifier que l'URL de la page précédente est connue.
flashdata
de la session pour stocker l'URL précédenteUne solution plus fiable consiste à enregistrer manuellement l'URL précédente dans une variable de session, au cas où HTTP_REFERER
ne serait pas disponible.
// Dans le contrôleur ou un hook avant de charger une vue
$this->session->set_flashdata('previous_url', current_url());
public function some_function()
{
// Obtenir l'URL précédente depuis les flashdata
$previous_url = $this->session->flashdata('previous_url');
if ($previous_url) {
redirect($previous_url);
} else {
// Si aucune URL précédente n'est disponible
redirect('default_controller');
}
}
$_SERVER['HTTP_REFERER']
: Simple et rapide, mais peu fiable si désactivé par le navigateur.user_agent
: Vérifie que l'URL de la page précédente est connue.flashdata
: Plus fiable, car vous contrôlez la gestion de l'URL dans la session.Ces méthodes permettent de rediriger les utilisateurs vers la page qu'ils consultaient avant d'effectuer une action.