Aide en php

J'aimerai à partir d'un test revenir sur la page précédente, comment puis-je faire?

$e = $_POST["reponse"];
if (empty($e))
{
RETOUR SUR LA PAGE PRECEDENTE;
exit();
}

Merci

6 réponses

  1. Contributeur
    Salut,

    Je te conseil de placer ce code :

    header("Location:".$_SERVER['HTTP_REFERER']);

    @+
    1. J'ai essayé mais j'ai ce message

      Warning: Cannot modify header information - headers already sent by (output started at f:\easyphp1-8\www\p01\rep.php:3) in f:\easyphp1-8\www\p01\rep.php on line 30

      Peux-tu m'aider?
      1. Salut Caroline,

        J'ai essayé avec du javascript et ça fonctionne bien chez moi.
        Voici un code qui me semble correct:

        <?PHP
        $e = $_POST['reponse']; 
        if(empty($e)){ 
         echo("<SCRIPT LANGUAGE = \"JavaScript\">window.history.back(-1);</SCRIPT>");
        exit(); 
        }
        ?>


        Et voilou, alors ça fonctionne ? ;-)
        @+
        1. Slt. Moi j'avais besoin de la meem fonction. Ta fonction marche mais le probleme est qu'il revient directement a la page precedente. Tu ne pourrais pas me dire comment faire en sorte que la page d'erreur s'affiche pendant quelques secondes ?
      2. Bonjour,

        Je vous préviens qu'il n'est pas conseiller d'utiliser la variable $_SERVER['HTTP_REFERER'] parce qu'elle n'est pas fiable (j'ai vu ça sur http://www.nexen.net/docs/php/annotee/reserved.variables.server.php?lien=http_referer )

        Pour faire sans, voilà ce que je propose :
        Dans chaque page, ajouter cette ligne
        $_SESSION['precedent']=$_SERVER['SCRIPT_NAME'];

        Ainsi lorsque l'on veut retourner à la page précédente, il suffit de rediriger sur $_SESSION['precedent'] en utilisant le meta refresh.

        Le source devient :
        $e = $_POST["reponse"];
        if (empty($e))
        {
            $pre = $_SESSION['precedent'] ; 
            echo "<meta http-equiv=\"Refresh\" content=\"0;URL=$pre\">";
        } 
        


        Le 0 correspond au temps d'attente (en seconde) avant la redirection
        1. j'ai esssaye ton code mais il me remet en boucle la meme page en precedent. Tu saus d'ou peux venir l'erreur ?

          Et pour le code javascript, y a t il moyuen d'ajouter un nombre de secondes avant l'affichage de la page precedente ? Merci pr vos reponses
          1. Qu'entend tu par il me remet en boucle la meme page en precedent?

            Parce que normalement il n'y a qu'une redirection, cela ne devrait pas boucler.

            Par contre pour le javascript, il y a le commande setTimeout() qui permet de lancer la redirection au bout de quelques milisecondes. Plus de détails sur cette fonctions ici : http://www.le-webmestre.net/web/cours/javascript/cours_21.php
        2. et bien il redirige vers la meem page en fait :s
          1. tu as bien mis $_SESSION['precedent']=$_SERVER['SCRIPT_NAME']; sur toutes les pages?

            Autre point sur lequel je suis pri d'un doute : Si tu utilise des frames la valeur de $_SERVER['SCRIPT_NAME']; peut être faussé (c'est à vérifier en faisant un echo sur chaque page de la valeur)