Aide en php

caroline -  
ceddec Messages postés 148 Date d'inscription   Statut Membre Dernière intervention   -
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
A voir également:

6 réponses

Erdnax Messages postés 2273 Date d'inscription   Statut Contributeur Dernière intervention   497
 
Salut,

Je te conseil de placer ce code :

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

@+
0
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
Babylontiti Messages postés 59 Date d'inscription   Statut Membre Dernière intervention   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
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
kilian Messages postés 8732 Date d'inscription   Statut Modérateur Dernière intervention   1 526
 
0
ceddec Messages postés 148 Date d'inscription   Statut Membre Dernière intervention   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

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
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
ceddec Messages postés 148 Date d'inscription   Statut Membre Dernière intervention   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
styvou
 
et bien il redirige vers la meem page en fait :s
0
ceddec Messages postés 148 Date d'inscription   Statut Membre Dernière intervention   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