IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

revenir à la page précédente


Sujet :

Langage PHP

  1. #1
    Expert confirmé
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 470
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 470
    Points : 5 831
    Points
    5 831
    Billets dans le blog
    1
    Par défaut revenir à la page précédente
    Bonsoir,

    dans ma page, il y a un lien qui permet d'effacer le message courant ; mais cette action a lieu dans une autre page (on efface notamment une ligne dans mysql). Quand, c'est fait, je voudrais revenir à la page courante.
    J'ai essayé de rajouter :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <script language="javascript">
    javascript:history.go(-1);
    </script>
    mais ça ne fait rien : que faudrait-il faire ?

  2. #2
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 727
    Points
    10 727
    Par défaut
    c'est

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <script type="text/javascript">
    history.back();
    </script>

  3. #3
    Expert confirmé
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 470
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 470
    Points : 5 831
    Points
    5 831
    Billets dans le blog
    1
    Par défaut
    maintenant, j'ai sur la page qui efface les messages ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    <?php
    include_once("config.php");
    include_once("connect.php");
    $id_conn = connect();
    $id=$_SESSION['effacer'];
    $sql="delete from `annonce` where id_annonce=".$id;
    $sql = stripslashes($sql);
    $result = mysql_query($sql) or die(mysql_error());
    echo "annonce effac&eacute;e<br>";
    ?>
    <script type="text/javascript">
    history.back();
    </script>  
    <?php
    close($id_conn);
    ?>
    mais si le message (une annonce) est bien effacée, je ne reviens pas à la page qui contient le lien...

  4. #4
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 727
    Points
    10 727
    Par défaut
    history.back() fait l'effet du bouton "précédant"
    si tu veux retourner plus lion utilise go()

    par exemple
    history.go(-2)

    ps : enlève ton stripslashes

  5. #5
    Expert confirmé
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 470
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 470
    Points : 5 831
    Points
    5 831
    Billets dans le blog
    1
    Par défaut
    par exemple
    history.go(-2)
    C'est la bonne valeur

    Par contre, sur la page où sont affichées les annonces, je rajoute le lien pour effacer uniquement si l'auteur est la personne loguée :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if ($ligne[4]==$pseudo)
    ; pour que quand je reviens sur la page d'affichage, ces valeurs soient conservées, j'ai pensé à les stocker dans des variables de session :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $_SESSION['effacer_memo']=$ligne[4];$_SESSION['pseudo']=$_pseudo;
    et le test pour afficher le lien est du coup :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if (($ligne[4]==$pseudo)||($_SESSION['effacer_memo']==$_SESSION['pseudo']))
    mais y a rien dans les variables de session, alors comment faire ?

    Et pourquoi me conseilles-tu d'enlever le stripslashes ? (Je ne me rappelle même plus pourquoi je l'avais mis ; c'est ancien)

  6. #6
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 727
    Points
    10 727
    Par défaut
    tu fais bien un session_start ?
    pour stripslashes : http://php.net/manual/fr/security.da...-injection.php

  7. #7
    Expert confirmé
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 470
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 470
    Points : 5 831
    Points
    5 831
    Billets dans le blog
    1
    Par défaut
    tu fais bien un session_start ?
    Oui, d'autant plus que le mécanisme pour effacer une annonce les utilise déjà...
    Pour stripslashes, tu t'es sûrement gouré de lien car ça n'a rien à voir.

  8. #8
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 727
    Points
    10 727
    Par défaut
    Citation Envoyé par laurentSc Voir le message
    Oui, d'autant plus que le mécanisme pour effacer une annonce les utilise déjà...
    Pour stripslashes, tu t'es sûrement gouré de lien car ça n'a rien à voir.
    fait un var_dump de $_SESSION

    pour le lien, si si c'est en rapport , c'est que t'as pas compris

  9. #9
    Expert confirmé
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 470
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 470
    Points : 5 831
    Points
    5 831
    Billets dans le blog
    1
    Par défaut
    fait un var_dump de $_SESSION
    Y a une des 2 variables qui est à NULL alors que l'init me semble correcte :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $_SESSION['effacer_memo']=$ligne[4];$_SESSION['pseudo']=$pseudo;
    c'est que t'as pas compris
    Ca doit être subtile, car je ne vois toujours pas.

  10. #10
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par laurentSc Voir le message
    Bonsoir,
    dans ma page, il y a un lien qui permet d'effacer le message courant ; mais cette action a lieu dans une autre page (on efface notamment une ligne dans mysql). Quand, c'est fait, je voudrais revenir à la page courante.
    J'ai essayé de rajouter :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <script language="javascript">
    javascript:history.go(-1);
    </script>
    mais ça ne fait rien : que faudrait-il faire ?
    Bonjour,
    Tu te donnes bien du mal pour rien, en effet dans la page courante il te faut la commencer par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <?php
    session_start();
    $_SESSION['lieu']="nom_de_la_page.php";
    ?>
    Puis dans la page qui va effecer le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <?php
    session_start();
    $lieu = (isset($_SESSION['lieu'])) ? $_SESSION['lieu'] : '';
    //====== puis tu rediriges vers $lieu

  11. #11
    Expert confirmé
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 470
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 470
    Points : 5 831
    Points
    5 831
    Billets dans le blog
    1
    Par défaut
    Merci de ta réponse ; mais j'ai fini par faire ça avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <script type="text/javascript">
    history.go(-2);
    </script>
    par contre, ça coince ensuite. Pourrais-tu jeter un coup d'oeil aux posts ?

  12. #12
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par laurentSc Voir le message
    par contre, ça coince ensuite. Pourrais-tu jeter un coup d'oeil aux posts ?
    Oui j'avais tout lu avec soins, mais
    1) le Javascript ne donnes pas la fiabilitée du PHP
    2) les suivi du cheminement par variable de session est super commode non ?

    Par contre si tu veux faire un travail plus "pro" pourquoi ne fais-tu pas un petit bout d'Ajax, en effet tu resterais dans ta page.Seul le PHP qui efface serait appelé de façon transparente.

    Donnes moi un bout de code de l'appel a la page d'effacement
    Dernière modification par Invité ; 12/06/2011 à 14h39.

  13. #13
    Expert confirmé
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 470
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 470
    Points : 5 831
    Points
    5 831
    Billets dans le blog
    1
    Par défaut
    Comme tu dis que le js est moins fiable que le PHP, j'ai entrepris de faire le retour arrière avec des variables de session et plus en js, en espérant que du coup, ça arrangera tout ; mais pour l'instant, c'est pire qu'avant, vu qu'il n'y a plus du tout de retour arrière. Voilà ce que j'ai fait : dans la page initiale :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <?php
    session_start();
    $_SESSION['lieu']="avisderecherche/index.php";
    ?>
    et dans la page d'effacement :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    echo '<SCRIPT language="JavaScript">';
    echo '<!--';
    echo 'window.location="http://---'.$_SESSION['lieu'].'"';
    echo '//-->';
    echo '</SCRIPT> ';
    La redirection, je la fais en js, que j'intègre dans du PHP ; tout doit pouvoir être fait en PHP ; dis-moi.

    pourquoi ne fais-tu pas un petit bout d'Ajax
    Car même s'il paraît que ce n'est pas compliqué, je ne connais pas...

    Donnes moi un bout de code de l'appel a la page d'effacement
    La partie utile de cette page :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    <?php
    include_once("config.php");
    include_once("connect.php");
    $id_conn = connect();
    $id=$_SESSION['effacer'];
    $sql="delete from `annonce` where id_annonce=".$id;
    $result = mysql_query($sql) or die(mysql_error());
    echo "annonce effac&eacute;e<br>";
    echo '<SCRIPT language="JavaScript">';
    echo '<!--';
    echo 'window.location="http://---/'.$_SESSION['lieu'].'"';
    echo '//-->';
    echo '</SCRIPT> ';
     
    close($id_conn);
    ?>
    et apel de celle-ci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
        if (($ligne[4]==$pseudo)||($_SESSION['effacer_memo']==$_SESSION['pseudo'])) 
    	     {echo '<a href="../effacer/index.php">Effacer</a>';$_SESSION['effacer']=$ligne[0];$_SESSION['effacer_memo']=$ligne[4];$_SESSION['pseudo']=$pseudo;}

  14. #14
    Invité
    Invité(e)
    Par défaut
    Tu fais un echo qui affiche la supression OK et aussitôt tu recharge ta page !
    donc pas le temps de lire ton message !

    En plus le fait d'avoir fait un echo empéche le header a la page en php !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    <?php
    include_once("config.php");
    include_once("connect.php");
    $id_conn = connect();
    $id=$_SESSION['effacer'];
    $sql="delete from `annonce` where id_annonce=".$id;
    $result = mysql_query($sql) or die(mysql_error());
    close($id_conn);
     header("Location:".$_SESSION['lieu']."");
     exit;
     
    ?>

  15. #15
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 727
    Points
    10 727
    Par défaut
    laurentSc >

    pour ouvrir un balise javascript c'est

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <script type="text/javascript">
    pas

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <SCRIPT language="JavaScript">
    et c'est mieux de mettre une balise CDATA que de commentaire

    donc

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <script type="text/javascript">
    //<![CDATA[
     
    //]]>
    </script>

  16. #16
    Expert confirmé
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 470
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 470
    Points : 5 831
    Points
    5 831
    Billets dans le blog
    1
    Par défaut
    Merci de ta réponse Christèle/Mauriser, comme il y a d'autres affichages plus haut que dans cette partie de code, j'ai choisi de mettre ce header dans une iframe :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <?php
    include_once("config.php");
    include_once("connect.php");
    $id_conn = connect();
    $id=$_SESSION['effacer'];
    $sql="delete from `annonce` where id_annonce=".$id;
    $result = mysql_query($sql) or die(mysql_error());
    echo '<iframe src="http://---/redirection.php"></iframe>';
    et avec redirection.php :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <?php 
    session_start();
    header('location:../'.$_SESSION['lieu']);
    ?>
    Cela dit, quand il tombe sur l'iframe, il ne trouve pas le fichier (alors que j'ai testé l'URL et elle est bonne et la redirection se fait bien), donc quel est le problème ?

    merci stealth35, c'est bon à retenir, même si je ne fais plus de js ici.

  17. #17
    Expert confirmé
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 470
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 470
    Points : 5 831
    Points
    5 831
    Billets dans le blog
    1
    Par défaut
    Quel est le souci de mon iframe ? Pour être plus sûr, je l'ai sortie du PHP :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <?php
    include_once("config.php");
    include_once("connect.php");
    $id_conn = connect();
    $id=$_SESSION['effacer'];
    $sql="delete from `annonce` where id_annonce=".$id;
    $result = mysql_query($sql) or die(mysql_error());
    ?>
    <iframe width=0 height=0 frameborder=0 src="http://---/redirection.php"></iframe>
     
    <?php
    ...
    Mais ça ne change rien...

  18. #18
    Invité
    Invité(e)
    Par défaut
    Non, surtout pas d'IFRAME
    emploies simplement
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    echo "<meta http-equiv='refresh' content='0' URL='".$_SESSION['lieu']."' >";

  19. #19
    Expert confirmé
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 470
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 470
    Points : 5 831
    Points
    5 831
    Billets dans le blog
    1
    Par défaut
    Je viens de le faire (je n'ai pas vu hier soir m'étant couché vers minuit) ; le refresh se fait bien, mais on reste sur la page courante : je dis qu'il se fait bien, car la page saute sans arrêt.

  20. #20
    Invité
    Invité(e)
    Par défaut
    C' est impossible si $lieu existe il retourne a $lieu
    tu dois faire ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    $x=$_SESSION['lieu'];
    $_SESSION['lieu']="";
    if ($x!="")
    {
    echo "<meta http-equiv='refresh' content='0' URL='".$x."' >";
    exit;
    }

Discussions similaires

  1. empêcher de revenir à la page précédente
    Par coyote999 dans le forum Servlets/JSP
    Réponses: 1
    Dernier message: 06/09/2007, 17h41
  2. Comment revenir à la page précédente en cliquant sur un lien
    Par veevee dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 21/04/2007, 20h29
  3. problème de script php pour revenir à la page précédente
    Par mandyben dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 14/09/2006, 11h12
  4. Revenir à la page précédente
    Par Llaur76 dans le forum Struts 1
    Réponses: 13
    Dernier message: 11/07/2006, 21h29
  5. revenir à la page précédente
    Par sam01 dans le forum Langage
    Réponses: 1
    Dernier message: 08/04/2006, 01h43

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo