Aide en php

caroline -  
ceddec Messages postés 149 Statut Membre -
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. Erdnax Messages postés 2279 Statut Contributeur 497
     
    Salut,

    Je te conseil de placer ce code :

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

    @+
    0
  2. caroline
     
    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
  3. Babylontiti Messages postés 59 Statut Membre 28
     
    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. steve
       
      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
  4. ceddec Messages postés 149 Statut Membre 82
     
    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
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. styvou
     
    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. ceddec Messages postés 149 Statut Membre 82
       
      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
  7. styvou
     
    et bien il redirige vers la meem page en fait :s
    0
    1. ceddec Messages postés 149 Statut Membre 82
       
      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