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']);

    @+
    0
    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?
      0
      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 ? ;-)
        @+
        0
        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 ?
          0
      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
        0
        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
          0
          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
            0
        2. et bien il redirige vers la meem page en fait :s
          0
          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)
            0