Retour à la page précédente en PHP

Subodh Poudel 21 décembre 2022
Retour à la page précédente en PHP

Cet article présentera quelques méthodes pour revenir à la page précédente en PHP.

Utilisez l’en-tête de requête HTTP_REFERER pour revenir à la page précédente en PHP

L’en-tête de requête HTTP_REFERER renvoie l’URL de la page à partir de laquelle la page courante a été demandée en PHP. L’en-tête permet au serveur de reconnaître l’emplacement à partir duquel les utilisateurs visitent la page en cours. L’en-tête est utilisé comme index du tableau $_SERVER. On peut utiliser la fonction header() avec l’entête location pour rediriger la page courante vers la page précédente. Nous devrions définir location sur $SERVER['HTTP_REFERER'] pour revenir à la page précédente.

Voyons comment fonctionne l’en-tête HTTP_REFERER. Par exemple, créez un bouton en HTML. Définissez l’attribut action sur home.php et l’attribut method sur post. Enregistrez le fichier sous index.php. Dans le fichier home.php, vérifiez si le formulaire est soumis avec la fonction isset(). Ensuite, utilisez la fonction echo pour afficher l’en-tête $_SERVER[HTTP_REFERER].

Exemple de code :

<form action ="home.php" method = "POST">
<button type="submit" name="button"> Submit</button>
</form>
if(isset($_POST['button'])){
 echo $_SERVER[HTTP_REFERER]; 
}

Production :

http://localhost/index.php

Ici, nous avons créé le formulaire dans le fichier index.php. Ensuite, le formulaire est soumis au fichier home.php. Cela signifie que la page home.php a été demandée à partir de la page index.php. La page index.php est donc le référent. La section de sortie ci-dessus montre que le HTTP_REFERER renvoie l’URL http://localhost/index.php, le référent.

Notre but est de rediriger la page courante home.php vers la page précédente index.php.

Par exemple, dans le fichier home.php, créez une variable $message pour stocker le message à afficher après la redirection. Utilisez le urlencode() pour écrire le message dans son paramètre. Ensuite, écrivez la fonction header() pour définir l’emplacement de la redirection. Concaténez $_SERVER[HTTP_REFERER] et "?message=".$message et définissez-le comme valeur pour location dans la fonction header(). Appelez ensuite la fonction die. Dans le fichier index.php, imprimez la variable $_GET['message'] juste en dessous du formulaire à l’aide de la fonction echo.

Ici, nous avons utilisé la fonction urlencode() pour écrire le message car le message est une chaîne qui est interrogée dans l’URL. L’index message dans le tableau $_GET est la variable que nous avons utilisée dans l’URL faisant référence à la page précédente dans la fonction header().

Lorsque nous cliquons sur le bouton de la page index.php, le formulaire est soumis à home.php et redirige vers la page index.php, la page précédente.

De cette façon, nous pouvons utiliser la fonction header() et l’en-tête HTTP_REFERER pour retourner la page en cours à la page précédente en PHP.

Exemple de code :

//index.php
<form action ="home.php" method = "POST">
<button type="submit" name="button"> Submit</button>
</form>

<?php
if(isset($_GET['message'])){
 echo $_GET['message'];
}
?>
//home.php
if(isset($_POST['button'])){
$message = urlencode("After clicking the button, the form will submit to home.php. When, the page home.php loads, the previous page index.php is redirected. ");
header("Location:".$_SERVER[HTTP_REFERER]."?message=".$message);
die;
}
Subodh Poudel avatar Subodh Poudel avatar

Subodh is a proactive software engineer, specialized in fintech industry and a writer who loves to express his software development learnings and set of skills through blogs and articles.

LinkedIn